Guten Tag!
Ich hab bei einem Projekt mit einem Atiny 2313 folgendes Problem:
Das Programm sollte eine Zeit von (ca.) 6 Minuten runter zählen. Dafür wollte ich den Timer1 verwenden der bis 7812 zählen sollte und dann einen Interrupt auslösen soll um dann eine Sekunde abzuziehen.
Der Timer1 zählt auch wie geplant hoch, bei 7812 beginnt er von vorne und setzt das OCF1A Bit auf 1 aber dadruch wird kein Interrupt ausgelöst.
Der Timer wurde wie folgt konfiguriert:
Code:
;Timer einstellen-------------------------------
;--Vergleichswert
ldi tmp1, 0b00011110
out ocr1ah, tmp1
ldi tmp1, 0b10000100
out ocr1al, tmp1
;--TCCR1a & TCCR1c werden nicht gebraucht
clr tmp1
out tccr1a, tmp1
out tccr1c, tmp1
;--CTC aktivieren und den Teiler auf 1024 stellen
ldi tmp1, 0b00001101
out tccr1b, tmp1
;--Timer1 Output Compare A Match interrupt enabled
ldi tmp1, 0b01000000
out timsk, tmp1
;Interrupt einschalten
sei
;-----------------------------
Kann mir vielleicht jemand sagen was falsch gelaufen ist? Ich hab das Datenblatt jetzt x-mal durchgelesen und ich konnte aber keinen Fehler entdecken.
Danke.
mfg
Stefan
Lesezeichen