Forum: Mikrocontroller und Digitale Elektronik ATMega8 Uhr mit Quarz


von yenlo (Gast)


Lesenswert?

Moin,

klarer Fall von Buffer Overflow beim Nutzer :-) Nach Lektüre des des 
Data Sheets von Atmel und zig Links zum Thema stehe ich gerade auf dem 
Schlauch:

Ich möchte eine einfache aber ganggenaue Uhr mit Uhrenquarz am AtMega8 
realisieren. Der Atmel soll die Zeit auf 7-Segmenter im Multiplex 
brüllen, wobei der Atmel später ggf mit Unterspannung 
(Batterieakkubetrieb mit ~3,6V) betrieben werden soll.

Wieviele Quarze benötige ich? Einen Main (zB. 4 Mhz) und den Uhrenquarz?
Oder reicht der Uhrenquarz alleine, wobei ich dann nicht sicher bin wie 
sich dann der interne Taktgeber verhält, gerade wenn ich die Spannung 
absenke.

Wenn 2 Quarze benötigt werden, wie werden sie am AtMega8 beschaltet?
Tosc1/2 für den Uhrenquarz als ext. Timer und wohin käme der Main?

von Timmo H. (masterfx)


Lesenswert?

Eigentlich brauchst du nur den internen und den externen Uhrenquarz. Der 
Uhrenquarz geht zum Timer/Counter. Der löst dann einen Interrupt aus und 
du zählst gemütlich deine Uhr hoch. Dann gehst du wieder in den 
Sleep-Modus wenn du gerade nichts anderes machen musst. Gibts auch ne 
Application Note von Atmel: 
http://atmel.com/dyn/resources/prod_documents/doc1259.pdf
und http://atmel.com/dyn/resources/prod_documents/Avr134.zip

von Chris (Gast)


Lesenswert?


von Stephan M. (stephanm)


Lesenswert?

yenlo schrieb:
> Ich möchte eine einfache aber ganggenaue Uhr mit Uhrenquarz am AtMega8
> realisieren.

Schau mal hier:

http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC

> Wieviele Quarze benötige ich? Einen Main (zB. 4 Mhz) und den Uhrenquarz?
> Oder reicht der Uhrenquarz alleine, wobei ich dann nicht sicher bin wie
> sich dann der interne Taktgeber verhält, gerade wenn ich die Spannung
> absenke.

Ein Quarz reicht. Die Frequenz sollte so hoch sein, dass der µC mit all 
seinen Aufgaben zurecht kommt. Je nachdem, wie Du die Hardware auslegst, 
genügen vielleicht schon z.B. 2 MHz.

Ein Quarz bedeutet: Ein Takt. Um Sekunden zu zählen, brauchst Du einen 
Takt mit 1Hz. Sowas gewinnt man aus dem "Haupttakt" z.B. über einen der 
Timer im CTC-Modus, möglicherweise mit nachgeschaltenem 
Software-Postscaler in der ISR. So kriegt man z.B. den Sekundenzähler 
und die Multiplex-Ansteuerung des Displays recht einfach unter einen 
Hut.

Im Standby-Modus (Display aus) kannst Du den µC dann zwischen den 
Overflow- Interrupts des Timers in den Schlafzustand versetzen, das 
spart Energie. Wenn Du nicht von vorne herein eine 
Ultra-Super-Low-Power-Applikation entwickeln willst, dann kannst Du ja 
mal mit einem Quarztakt von 8 MHz anfangen. Den Quarz kannst Du dann ja 
später gegen ein langsameres Exemplar austauschen.

Alles klar? ;-)

Stephan

von Stephan M. (stephanm)


Lesenswert?

Stephan M. schrieb:
> Im Standby-Modus (Display aus) kannst Du den µC dann zwischen den
> Overflow- Interrupts des Timers in den Schlafzustand versetzen, [...]

Hm, da kam mal wieder Quatsch an meiner Tastatur an...

Den µC kannst Du zwischen den Timer-Interrupts in den Standby-Modus 
fahren, um Strom zu sparen, egal, ob das Display an oder aus ist.

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.