Probleme mit Timer2 Atmega128

Gast #2771524
Lesenswert?

Hallo,
ich benötige mal eure Hilfe. Ich bin nun vom Atmega8 auf den Atmega128 
umgestiegen und versuch mich momentan an den Timern.
Nun wollte ich einfach den PORTD im Sekundentakt toggeln.
Als Takt nehme ich den internen 1MHz. Prescaler also auf 8 einstellen, 
CTC Modus einstellen und den OCR2 auf 124 setzen. Damit bekomm ich ja 
dann jede Millisekunde ein Interrupt. Diese werden nun gezählt bis 1000 
Interrupts, also eine Sekunde verstichen ist.
Dann soll der PORTD toggeln. Soweit die Theorie.
Auf meinem Atmega8 hat dies auch funktioniert, nur auf dem 128er nun 
nicht mehr.
Das Problem ist das die ISR aufgerufen wird, aber die Variable 
"millisekunden" wird nicht hochgezählt. Wenn ich nun "PORTD ^= 0xFF;" 
direkt in die ISR reinsetze funktioniert das ganze, nur nicht wenn ich 
es in der main loop drinstehen hab.
Hab ich irgenwas übersehn oder läuft das auf dem Atmega128 anders??
Besten Dank schonmal....
Angehängte Dateien:
Gast #2771559
Lesenswert?

Sieht eigentlich OK aus, sollte klappen.

Naja deine Blöcke sind nicht atomar. Und ein Vergleich: if(millisekunden 
>= 1000) ist eigentlich auch schöner, aber das sollte nicht stören.

Würde auf Kompatiblitätsfuse tippen, aber du sagst ja es klappt wenn du 
in der ISR toggelst. Also kann man das wohl auch ausschließen.

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