ATMega8 Uhr mit Quarz

Gast #1656795
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?
#1656810
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
#1656813
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
#1656825
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.