Timer 1 Problem im CTC-Modus bei Mega32 (Anfänger)

Gast #1615943
Lesenswert?

Abend!
Kann sein (ist sehr wahrscheinlich), dass ich einfach überarbeitet bin 
und irgendwas wichtiges übersehe, aber ich komme mit dem Timer1 nicht 
ganz zurecht.

Mein Code:
1
#include <avr/interrupt.h>
2
...
3
TCCR1A = 0x00;
4
TCCR1B = (1<<WGM12) | (1<<CS11)  | (1<<CS10);
5
TCNT1H = 0;
6
TCNT1L = 0;
7

8
OCR1AH = ((1250 & 0xFF00) >> 8);
9
OCR1AL =  (1250 & 0x00FF);
10

11
TIMSK = (1<<OCIE1A);
12

13
sei();
14
...
15
ISR(TIMER1_COMPA_vect)
16
{
17
    ...
18
}

bei 8 Mhz Taktfrequenz sollte das alle 10 ms die ISR aufrufen, tut es 
aber anscheinend nicht. was mache ich falsch?
Gast #1615997
Lesenswert?

> anscheinend wird die ISR nicht aufgerufen.

Wie kommst Du darauf? Hast Du z.B. in der ISR einen Ausgangspin 
getoggelt? Und ihn mit einem Scope / Frequenzzähler kontrolliert?
(Mit dem Toggeln eines Pins kann man auch gut die Frequenz 
kontrollieren.)
Gast #1616994
Lesenswert?

OK, kleines Update: hab das ganze mal durch den Simlulator laufen lassen 
und anscheinent wird OCIE1A in TIMSK nicht gesetzt... wenn ich aber den 
ganzen Code 1:1 in ein neues Projekt kopiere, läuft es ohne Probleme...
Wie kann das sein?

Aber wenigstens läuft es jetzt, danke für eure Hilfe!

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