Digitaluhr atmega8

OP #872956
Lesenswert?

Nabend,
ich versuche gerade eine Digitaluhr mit einem atmega zu realisieren.
Ich will über den Timer0 alle Sekunde einen Interrupt auslösen, welcher 
dann die Zeit hochzählt und entsprechend ausgibt.
Irgendwie funktioniert nichtmal dieser Interrupt. Wenn ich in der 
endlosschleife immer die Sekunden ausgeben lasse (PORTD geht an 7seg 
anzeigen) so verändern diese ihren Wert nie. also geh ich davon aus, 
dass der Interrupt nie ausgelöst wird, bzw aus irgend einem Grund meine 
ISR nicht aufgerufen wird.
Ich benutze hier:
"ISR(TIMER1_OVF_vect) {", diese sollte ja eigentlich nach jedem overflow 
von Timer1 aufgerufen werden.
Es wär echt super wenn ihr mal drüberschauen könntet. Ich finde den 
Fehler beim besten Willen nicht.(Ich hocke da schon n kleines Weilchen 
dran und habe schon das ein oder andere ausprobiert)
danke schonmal!!!!

hier der Code:
http://ubuntuusers.de/paste/218296/
es ist sehr viel auskommentiert, weil ich das ein oder andere 
ausprobiert habe.
Gast #872968
Lesenswert?

Hab' ich's übersehen oder hast du vergessen OCR1B zu beschreiben?
Ich kenne die Taktfrequenz nicht, aber davon abhängig muss ja der Teiler 
und das Register gesetzt werden.

Achso: der Overflow-INT ist ja dafür auch nicht geeignet, da muss der 
Output-Compare-INT 'ran.
OP #874602
Lesenswert?

wieso ist der Overflow-INT ungeeignet?
In diesem Turtorial:
http://www.mikrocontroller.net/articles/DCF77-Funkwecker_mit_AVR
wird dieser auch für eine Uhr benutzt.
Derzeit bekomme ich irgendwie überhaupt keinen Interrupt, das verwirrt 
mich sehr. Also ich habe mal in die ISR ein "PORTD=9" geschrieben, aber 
dies wird irgendwie nie ausgeführt, also bekomme ich keinen Interrupt.
Prescaler sollte ja mit:         "TCCR1B |= (1<<CS12);" gesetzt sein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren