Forum: Mikrocontroller und Digitale Elektronik Eine Uhr mit Avr prog.


von Andreas (Gast)


Lesenswert?

Hallo

Wolte mal fragen ob einer hier schon mal eine Uhr programmiert hat , 
wenn ja wäre es möglich das ich bitte bitte auch einen Ansatz bekomme 
wie ich das machen kann.
Uch wolte die Zeitschleife über die Timer Register vornehmen.
Das klapt auch schon mit einer Zeitschleife von 1 Sekunde.
Auch das Init für die Ausgabe ans Display funktuniert.
Arbeite mit dem 90s4433.

mfg Andy

von Peter D. (peda)


Lesenswert?

Hier ist ne komplette Uhr mit allem möglichen Zubehör:

http://www.specs.de/~danni/appl/soft/c51/thclock/index.htm

Trotzdem paßt alles in einen kleinen billigen AT89C2051 mit nur 2kB 
Programmspeicher.



Peter

von Andreas (Gast)


Lesenswert?

Danke Peter

Allerdings ist das alles in einen anderen befehlscode geschrieben
Ich bin ehrlich gesagt froh das ich mit dem wavrasm meine befehle aus 
dem listing hinkriege.

Danke trotzdem
Vileicht noch einer einen Tip?

mfg Andy

von Andreas (Gast)


Lesenswert?

Also ehrlich keiner eine Uhr bis jetzt??

von crazy horse (Gast)


Lesenswert?

macht auch nicht viel Sinn (wer will denn noch Digitaluhren??), genau 
geht ein MC-Uhr zumindest mit den üblichen Quarzen auch nicht (die 
Osz-Frequenz liegt eigentlich immer ca. 0,1% über der aufgedruckten 
Quartzfrequenz), hat glaube ich was mit Serien- bzw. Parallelresonanz zu 
tun. Mit ext. Generator könnte es genauer werden, wie genau die sind, 
weiß ich nicht.
Ansonsten ist es einfach, du bastelst dir einen genauen Timerinterrupt, 
sagen wir mal alle 50ms (z.B. Quartz 4,096MHz, Vorteiler 1024, reload 
-200), der Rest ist reine Fleißarbeit.
Ein Register zählt dei 50ms-Impulse, wenn eine Sekunde um ist, 
zurücksetzen, Sekundenzähler erhöhen usw.
Dazu eine Ausgaberoutine, fertig ist die Uhr. Noch ein paar Tasten zum 
Stellen, Sommer/Winterzeit, Sternzeit, Mondphase - da kannst du deinen 
Spieltrieb ausleben.

von Peter D. (peda)


Lesenswert?

Hallo Andy,

hast Recht, das ganze Programm ist in C geschrieben.

Wenn man allerdings noch nie mit C gearbeitet hat, ist es schwer zu 
verstehen.

Da ist auch noch ein Artikel auf meiner Webseite, wie man beliebig 
krumme Quarze als hochgenaue Uhr benutzt, bzw. die Abweichung des 
Quarzes korrigieren kann.


Peter

von Haiko (Gast)


Lesenswert?

Hallo,

für eine Uhr würde ich lieber einen MSP430 nehmen. Der hat den Vorteil, 
dass gleich ein LCD-Display angeschlossen werden kann und die Batterie 
bei 2,5uA ca. 10Jahre halten wird. Bei der Genauigkeit kann man ein 
bisschen trixen, herkömmliche Quarze sind in der Tat etwas ungenau.
Die Zeit zählt man am besten über einen der Timer des MSP und gleicht 
dabei die Ungenauigkeit des Quarzes aus, indem man den Timer anpasst. 
Wenn die Uhr immer schön im Wohnzimmer steht, spiel auch der 
Temperatureinfluss keine grosse Rolle mehr.
Eine andere Möglichkeit ist ein DCF-Controller à la T4227.
Das ganze ist in Assembler schnell programmiert.

Gruss und viel Spass

von Michael T (Gast)


Lesenswert?

Hallo Andy,
schau mal unter Codesammlung nach.
Da ist eien DCF Uhr mit dem 1200.
Dabei wird auch eine Echtzeituhr verwendet.
Die auch ohne DCF läuft.
Ist wenigsten ein Ansatz.
Die Anzeige von Stunden und Minuten geht auf jedem fall.

Viele Grüße
       Michael T

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.