Forum: Compiler & IDEs Probleme mit Timer2 Atmega128


von Nico (Gast)


Angehängte Dateien:

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....

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nico schrieb:
> Prescaler also auf 8 einstellen

Machst du aber nicht, steht auf 1.

von Rudi (Gast)


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.

von Nico (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Machst du aber nicht, steht auf 1.
Stimmt, hast recht.

Rudi schrieb:
> Würde auf Kompatiblitätsfuse tippen

Es lag nun wirklich am Kompatiblitätsfuse. Nun funktionierte es so wie 
es soll. Besten Dank für den Hinweis Rudi.
Schöne Wochenende....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.