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?
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.