Forum

Einloggen | Registrieren | RSS  

matzi682015(R)

E-Mail

Aachen,
25.12.2018,
23:42
(editiert von matzi682015
am 26.12.2018 um 00:01)
 

µC-Uhr (Elektronik)

Ich habe diesen Artikel gelesen:

https://www.mikrocontroller.net/articles/AVR-Tutorial:_Uhr

in Anlehnung an diesen Tread vom 13.12.2018 von mir:

http://www.elektronik-kompendium.de/forum/forum_entry.php?id=266574&page=0&category=all&order=time

mir wurde hier mitgeteilt, dass ich einen Ziehkondensator von 30pF auf 47pF vergrößern soll, aber jetzt geht die Uhr immernoch um 5s pro Tag vor. Das ist viel. Den µC umzuprogrammieren ist mir zu hoch. Was soll ich machen? Die Uhre geht immernoch merklich zu sehr voraus.

Mit den ganzen Interrupts und was da alles so softwaremäßig programmiert ist, ich weiß nicht wie ich das ändern oder beeinflussen soll.

--
greets from aix-la-chapelle

Matthes :hungry:

bastelix(R)

26.12.2018,
01:17

@ matzi682015

µC-Uhr

Hallo Matzi,

» Mit den ganzen Interrupts und was da alles so softwaremäßig programmiert
» ist, ich weiß nicht wie ich das ändern oder beeinflussen soll.
Hast du den Code für die Uhr oder kannst den Beschaffen? Dann könnte ich dir da ggf. ein paar Software-Modifikationen vorschlagen.

Kannst du mal ein Foto von beiden Seiten der Platine machen und posten?

» in Anlehnung an diesen Tread vom 13.12.2018 von mir:
» http://www.elektronik-kompendium.de/forum/forum_entry.php?id=266574&page=0&category=all&order=time
Finde ich schade, dass du deinen Post quasi gelöscht hast. Stand ja nichts falsches drin.

Sel(R)

Radebeul,
26.12.2018,
08:20

@ matzi682015

µC-Uhr

» Ich habe diesen Artikel gelesen:
»
» https://www.mikrocontroller.net/articles/AVR-Tutorial:_Uhr
»
» in Anlehnung an diesen Tread vom 13.12.2018 von mir:
»
» http://www.elektronik-kompendium.de/forum/forum_entry.php?id=266574&page=0&category=all&order=time
»
» mir wurde hier mitgeteilt, dass ich einen Ziehkondensator von 30pF auf 47pF
» vergrößern soll, aber jetzt geht die Uhr immernoch um 5s pro Tag vor. Das
» ist viel. Den µC umzuprogrammieren ist mir zu hoch. Was soll ich machen?
» Die Uhre geht immernoch merklich zu sehr voraus.
»
» Mit den ganzen Interrupts und was da alles so softwaremäßig programmiert
» ist, ich weiß nicht wie ich das ändern oder beeinflussen soll.

Code ist die eine Sache. Könntest auch den Quarz tauschen in der Hoffnung auf eine andere Toleranz. Oder die Ziehkondensatoren überbrücken, zusätzlich noch mit einem Trimmer (22pF vielleicht). Gibt zwar Grenzen beim "Ziehen", die sollten aber noch nicht erreicht sein.
Außerdem, 5sek am Tag, na ja... Ich weiß ja nicht was du mit der Uhr vorhast. Sind in 14 Tagen nur rund 1 Minute. Vielleicht wäre bei solchen Anforderungen an einen Selbstbau eine Funkuhr besser gewesen? Allerdings brauchste da auch die Empfangsmöglichkeit, ist ja nicht immer gegeben in Gebäuden.

LG Sel

--
******************************************
Ich bin ein Elektronikbastler, der nur durch Schmerzen begreift, was schlauere Leute im Forum an Wissen vermitteln können.

xy(R)

E-Mail

26.12.2018,
08:53

@ Sel

µC-Uhr

» Gibt zwar Grenzen beim
» "Ziehen", die sollten aber noch nicht erreicht sein.

Ich werds die Tage mal ausprobieren, hab den Controller und solcherlei Quarze im Fundus. Interessiert mich jetzt selbst.

» Außerdem, 5sek am Tag, na ja... Ich weiß ja nicht was du mit der Uhr
» vorhast. Sind in 14 Tagen nur rund 1 Minute.

5s/d ist schon mehr als man tolerieren muss, das kann so ein Quarz schon besser.

mnemonic(R)

26.12.2018,
14:34

@ matzi682015

OCR1AL

Du musst das Compare Register OCR1 anpassen, das steuert die 100stel Sekunden.
Alle 40.000 Zyklen wird eine 100stel Sekunde hochgezählt. Im Code ist das gut dargestellt.
Alternativ könntest du z. B. um Mitternacht 5 Sekunden abziehen.

--
"Immer genügend Widerstand mitbringen"

matzi682015(R)

E-Mail

Aachen,
26.12.2018,
16:10
(editiert von matzi682015
am 26.12.2018 um 17:46)


@ bastelix

µC-Uhr

» Hallo Matzi,
»
» » Mit den ganzen Interrupts und was da alles so softwaremäßig programmiert
» » ist, ich weiß nicht wie ich das ändern oder beeinflussen soll.
» Hast du den Code für die Uhr oder kannst den Beschaffen? Dann könnte ich
» dir da ggf. ein paar Software-Modifikationen vorschlagen.

Hallo Bastelix :-),

Nein, den Code für die Uhr habe ich nicht. Besorgen kann ich den auch nicht, weil es ist ein aus der Bucht von China sehr billiges Teil, ein Bausatz.
»
» Kannst du mal ein Foto von beiden Seiten der Platine machen und posten?




»
» » in Anlehnung an diesen Tread vom 13.12.2018 von mir:
» »
» http://www.elektronik-kompendium.de/forum/forum_entry.php?id=266574&page=0&category=all&order=time
» Finde ich schade, dass du deinen Post quasi gelöscht hast. Stand ja nichts
» falsches drin.

TripelEdit: Ich weiß auch nicht warum ich geschrieben habe es mit diesem Uhrenmodul zu lassen. Ich gebe zu schnell auf.

Das posting ist doch gar nicht gelöscht!? Hast Du weiter geblättert? Er ist jetzt nur nach hinten gerückt, weil es ja immer neue Threads gibt. Auf Seite 2 steht er noch.

EDIT: Er steht noch hier auf Seite 1

Doppeledit: Das Schaltbild wird dieses hier sein:

--
greets from aix-la-chapelle

Matthes :hungry:

matzi682015(R)

E-Mail

Aachen,
26.12.2018,
16:17

@ Sel

µC-Uhr

» » Ich habe diesen Artikel gelesen:
» »
» » https://www.mikrocontroller.net/articles/AVR-Tutorial:_Uhr
» »
» » in Anlehnung an diesen Tread vom 13.12.2018 von mir:
» »
» »
» http://www.elektronik-kompendium.de/forum/forum_entry.php?id=266574&page=0&category=all&order=time
» »
» » mir wurde hier mitgeteilt, dass ich einen Ziehkondensator von 30pF auf
» 47pF
» » vergrößern soll, aber jetzt geht die Uhr immernoch um 5s pro Tag vor.
» Das
» » ist viel. Den µC umzuprogrammieren ist mir zu hoch. Was soll ich machen?
» » Die Uhre geht immernoch merklich zu sehr voraus.
» »
» » Mit den ganzen Interrupts und was da alles so softwaremäßig programmiert
» » ist, ich weiß nicht wie ich das ändern oder beeinflussen soll.
»
» Code ist die eine Sache. Könntest auch den Quarz tauschen in der Hoffnung
» auf eine andere Toleranz. Oder die Ziehkondensatoren überbrücken,
» zusätzlich noch mit einem Trimmer (22pF vielleicht). Gibt zwar Grenzen beim
» "Ziehen", die sollten aber noch nicht erreicht sein.
» Außerdem, 5sek am Tag, na ja... Ich weiß ja nicht was du mit der Uhr
» vorhast. Sind in 14 Tagen nur rund 1 Minute. Vielleicht wäre bei solchen
» Anforderungen an einen Selbstbau eine Funkuhr besser gewesen? Allerdings
» brauchste da auch die Empfangsmöglichkeit, ist ja nicht immer gegeben in
» Gebäuden.
»
» LG Sel

Quarz austauschen ginge auch? Also die genaue Quarzfrequenz ist doch auch irgendwie direkt zu Anfang des Programmcodes fest definiert, kann man also trotzdem einen Quarz nehmen der 1kHz oder so weniger hat??

Mitg den Ziehkondensatoren fummel ich mal noch was rum, zu gegebener Zeit. einen habe ich ja con 30pF auf 47pF schon geändert, und ich habe den Eindruck, dass die uhre jetzt schon ein klein wenig langsamer geht.

Die Uhr ist in der Küche in einem kleinen Schaltschränkchen über meinem Herd, damit kann ich programieren, den Herd zu einer bestimmten Zeit ein- bzw. auszuschalten.

--
greets from aix-la-chapelle

Matthes :hungry:

matzi682015(R)

E-Mail

Aachen,
26.12.2018,
16:21
(editiert von matzi682015
am 26.12.2018 um 20:44)


@ xy

µC-Uhr

» » Gibt zwar Grenzen beim
» » "Ziehen", die sollten aber noch nicht erreicht sein.
»
» Ich werds die Tage mal ausprobieren, hab den Controller und solcherlei
» Quarze im Fundus. Interessiert mich jetzt selbst.
»
» » Außerdem, 5sek am Tag, na ja... Ich weiß ja nicht was du mit der Uhr
» » vorhast. Sind in 14 Tagen nur rund 1 Minute.
»
» 5s/d ist schon mehr als man tolerieren muss, das kann so ein Quarz schon
» besser.

Also ich habe schon sehr sehr viele Quarz-Uhren gebaut in meinem kleinen Elektronikerleben :-D , mit 3,2768MHz- oder 32,768kHz-Quarzen, und die musste ich nie stellen. Das waren keine µC-Uhren, sondern diskret mit 4060 als Oszillator und 4017-usw.-Zählern und Treibern halt. Und auch Uhren die die Netzfrequenz als Takt haben, die gehen auch immer richtig.

--
greets from aix-la-chapelle

Matthes :hungry:

matzi682015(R)

E-Mail

Aachen,
26.12.2018,
16:28
(editiert von matzi682015
am 26.12.2018 um 16:29)


@ mnemonic

OCR1AL

» Du musst das Compare Register OCR1 anpassen, das steuert die 100stel
» Sekunden.
» Alle 40.000 Zyklen wird eine 100stel Sekunde hochgezählt. Im Code ist das
» gut dargestellt.
» Alternativ könntest du z. B. um Mitternacht 5 Sekunden abziehen.

Hallo, das µC-Kerlchen ist ein AT89C2051, habe den in eine Fassung gesteckt. Kann ich den rausnehmen und irgendwie aus-/einlesen? Das habe ich noch nie gemacht! Wie geht das? Ich habe so ein paar Programmierkits, z.B. das Board STK500 von ATmel. Und ein SmartUSB- light - Programmierstick (AVR-ISP-Programmer), "mySmartUSB light" steht drauf.

--
greets from aix-la-chapelle

Matthes :hungry:

mnemonic(R)

26.12.2018,
20:28

@ matzi682015

OCR1AL

» » Du musst das Compare Register OCR1 anpassen, das steuert die 100stel
» » Sekunden.
» » Alle 40.000 Zyklen wird eine 100stel Sekunde hochgezählt. Im Code ist
» das
» » gut dargestellt.
» » Alternativ könntest du z. B. um Mitternacht 5 Sekunden abziehen.
»
» Hallo, das µC-Kerlchen ist ein AT89C2051, habe den in eine Fassung
» gesteckt. Kann ich den rausnehmen und irgendwie aus-/einlesen? Das habe ich
» noch nie gemacht! Wie geht das? Ich habe so ein paar Programmierkits, z.B.
» das Board STK500 von ATmel. Und ein SmartUSB- light - Programmierstick
» (AVR-ISP-Programmer), "mySmartUSB light" steht drauf.

Die SW hinter dem Link ist nicht für diesen Controller gedacht. Deshalb wird das nix mit dem Register OCR1
Sorry.

--
"Immer genügend Widerstand mitbringen"

matzi682015(R)

E-Mail

Aachen,
26.12.2018,
20:40

@ mnemonic

OCR1AL

» » » Du musst das Compare Register OCR1 anpassen, das steuert die 100stel
» » » Sekunden.
» » » Alle 40.000 Zyklen wird eine 100stel Sekunde hochgezählt. Im Code ist
» » das
» » » gut dargestellt.
» » » Alternativ könntest du z. B. um Mitternacht 5 Sekunden abziehen.
» »
» » Hallo, das µC-Kerlchen ist ein AT89C2051, habe den in eine Fassung
» » gesteckt. Kann ich den rausnehmen und irgendwie aus-/einlesen? Das habe
» ich
» » noch nie gemacht! Wie geht das? Ich habe so ein paar Programmierkits,
» z.B.
» » das Board STK500 von ATmel. Und ein SmartUSB- light - Programmierstick
» » (AVR-ISP-Programmer), "mySmartUSB light" steht drauf.
»
» Die SW hinter dem Link ist nicht für diesen Controller gedacht. Deshalb
» wird das nix mit dem Register OCR1
» Sorry.

welche SW hinter welchem Link bitte?

--
greets from aix-la-chapelle

Matthes :hungry:

bastelix(R)

27.12.2018,
00:57

@ matzi682015

µC-Uhr

» Quarz austauschen ginge auch? Also die genaue Quarzfrequenz ist doch auch
» irgendwie direkt zu Anfang des Programmcodes fest definiert, kann man also
» trotzdem einen Quarz nehmen der 1kHz oder so weniger hat??
Nein! Du kannst einen anderen Quarz mit der gleichen Frequenz verwenden, aber die Frequenz muss zu der Konfiguration des µC passen. Also einen anderen 12MHz Quarz kannst du ohne weiteres einsetzen. Eine andere Frequenz kannst du nur verwenden, wenn du den µC neu Programmieren und die Konfiguration für die Takt-Frequenz ändern kannst.

matzi682015(R)

E-Mail

Aachen,
27.12.2018,
01:17
(editiert von matzi682015
am 27.12.2018 um 01:18)


@ bastelix

µC-Uhr

» » Quarz austauschen ginge auch? Also die genaue Quarzfrequenz ist doch
» auch
» » irgendwie direkt zu Anfang des Programmcodes fest definiert, kann man
» also
» » trotzdem einen Quarz nehmen der 1kHz oder so weniger hat??
» Nein! Du kannst einen anderen Quarz mit der gleichen Frequenz verwenden,
» aber die Frequenz muss zu der Konfiguration des µC passen. Also einen
» anderen 12MHz Quarz kannst du ohne weiteres einsetzen. Eine andere Frequenz
» kannst du nur verwenden, wenn du den µC neu Programmieren und die
» Konfiguration für die Takt-Frequenz ändern kannst.

Hallo Bastelix, aber wie kann der µC bzw. das Programm bzw. der Programmcode feststellen, dass mein quarz 1 kHz weniger hat? Die Quarze haben doch auch Toleranzen! Puuh, das ist ein nicht so einfaches Thema...

--
greets from aix-la-chapelle

Matthes :hungry:

bastelix(R)

27.12.2018,
01:39

@ matzi682015

µC-Uhr

» Nein, den Code für die Uhr habe ich nicht. Besorgen kann ich den auch
» nicht, weil es ist ein aus der Bucht von China sehr billiges Teil, ein
» Bausatz.
Du könntest mal den Händler anschreiben, kann etwas bringen, muss aber nicht. Ich hab das schon öfter gemacht. Von "Keine Ahnung, ich verkaufe das Zeug nur" bis zu "Schau mal in den Anhang, wenn dir das nicht hilft melde dich nochmal" war schon alles dabei. Bei letzterem war im Anhang eine Sammlung von Datenblättern, Beispielcode, angepasste Bibliotheken und noch einiges mehr (teilweise auf Chinesisch ;) )

» TripelEdit: Ich weiß auch nicht warum ich geschrieben habe es mit diesem
» Uhrenmodul zu lassen. Ich gebe zu schnell auf.
Manchmal bekommt man halt nen Rappel... Aber aufgegeben hast ja anscheinend doch nicht ;-)

» Das posting ist doch gar nicht gelöscht!? Hast Du weiter geblättert? Er ist
» jetzt nur nach hinten gerückt, weil es ja immer neue Threads gibt. Auf
» Seite 2 steht er noch.
Ich meinte damit, dass du deinen Text editiert und den ursprünglichen Post dadurch gelöscht hast. Sel hat (vermutlich) einen Full-Quote gemacht ( http://www.elektronik-kompendium.de/forum/forum_entry.php?id=266580&page=0&category=all&order=time ) aber besser lesbar (für die Nachwelt) wäre es gewesen, wenn du deinen initialen Post nicht entfernt hättest. Ist aber auch nicht so wild.

» Doppeledit: Das Schaltbild wird dieses hier sein:
»
»
Ja, hab den Teil vom Quarz im Schaltplan im Post von Sel mit deinen Fotos verglichen. Der Quarz bestimmt die Takt-Fequenz des µC und darüber wir dann per Software die Uhrzeit bestimmt. (Sofern die da nix sehr, sehr, verdammt wildes im Code vom µC machen... Glaub ich aber eher nicht) Den Ansatz kenne ich als eher ungenau, weil man da im Code noch einiges machen kann um die interne Uhr vom µC zu verstellen. Ist für den internen Ablauf des Programms meistens unerheblich, aber für eine Uhr eher ungeeignet. Andererseits soll dein µC und dessen Code nicht viel mehr machen als eine Uhr zu sein...

Da xy das mal nachstellen möchte, würde ich mal auf seine Ergebnisse warten. Danach können wir noch immer schauen wie wir deinen µC umprogrammiert bekommen und zur Not ein RTC-Modul an den Bausatz anflanschen können. (Also das Problem mit mehr Hardware erschlagen ;-) )

bastelix(R)

27.12.2018,
01:54

@ matzi682015

µC-Uhr

Hallo Matzi,

» aber wie kann der µC bzw. das Programm bzw. der Programmcode feststellen, dass mein quarz 1 kHz weniger hat?
Ohne zusätzliche, externe, Referenzen?
Vorstellbar wäre, dass man ein Programm ausführt, dessen Laufzeit bekannt bzw. exakt berechenbar ist und darüber eine Kalibrierung vornimmt.
Kleines Beispiel für so ein Programm:
Sortiere das Array [1,2,3,4,5] von groß zu klein. Ergebnis: [5,4,3,2,1]. Die Laufzeit lässt sich, bei bekanntem Sortier-Algorithmus, berechnen. Wenn man die Laufzeit der Sortierung anhand der Systemzeit misst und mit bekannten Laufzeiten vergleicht könnte man die Abweichung des Quarzes ermittelt.
Ich kann mir aber nicht vorstellen, dass man diesen Aufwand betreibt, anstatt bessere Bauteile zu verwenden. Und wenn die Bauteile nix kosten dürfen ist die Genauigkeit eher auch Wurst.

Wie schon im anderen Post geschrieben, lass uns mal auf die Test-Ergebnisse von xy warten :)

mnemonic(R)

27.12.2018,
12:22

@ matzi682015

OCR1AL

» » » » Du musst das Compare Register OCR1 anpassen, das steuert die 100stel
» » » » Sekunden.
» » » » Alle 40.000 Zyklen wird eine 100stel Sekunde hochgezählt. Im Code
» ist
» » » das
» » » » gut dargestellt.
» » » » Alternativ könntest du z. B. um Mitternacht 5 Sekunden abziehen.
» » »
» » » Hallo, das µC-Kerlchen ist ein AT89C2051, habe den in eine Fassung
» » » gesteckt. Kann ich den rausnehmen und irgendwie aus-/einlesen? Das
» habe
» » ich
» » » noch nie gemacht! Wie geht das? Ich habe so ein paar Programmierkits,
» » z.B.
» » » das Board STK500 von ATmel. Und ein SmartUSB- light - Programmierstick
» » » (AVR-ISP-Programmer), "mySmartUSB light" steht drauf.
» »
» » Die SW hinter dem Link ist nicht für diesen Controller gedacht. Deshalb
» » wird das nix mit dem Register OCR1
» » Sorry.
»
» welche SW hinter welchem Link bitte?

Dieser Link https://www.mikrocontroller.net/articles/AVR-Tutorial:_Uhr steht in deinem ersten Posting.
Wenn du dem Link folgst und dort etwas nach unten scrollst findest du das Assembler Programm für eine Uhr. Die Chinesen kopieren gerne solche SW/HW und vermarkten sie dann billigst im ebay oder bei Ali.

--
"Immer genügend Widerstand mitbringen"