Forum: Mikrocontroller und Digitale Elektronik Timer2 Interrupt


von user227 (Gast)


Lesenswert?

Hallo,
habe ein Problem bei meinem Projekt. Hier soll mit dem 80c535 ein 
PWM-Signal erzeugt werden. Wie ich mein Compare Register einstelle ist 
mir klar. Allerdings möchte ich dass beim Timer2 Overflow ein Interrupt 
erzeugen. Habe dazu das ET2 Bit gesetzt. Der Interrupt wird jedoch nur 
einmal ausgeführt. Der Timer startet nach abarbeitung der 
Interrupt-Routine zwar wieder von vorn, allerdings wird bei einem 
Overflow kein Interrupt ausglöst. Welche Bit muss ich setzten, damit 
dies wieder funktioniert? Ich hoffe mir kann jemand dabei weiterhelfen. 
Vielen Dank

von Peter D. (peda)


Lesenswert?

user227 wrote:

> Der Interrupt wird jedoch nur einmal ausgeführt.

Vielleicht hast Du den Interrupt nicht mit RETI beendet, dann befindet 
sich die CPU noch im Interruptmodus und kann natürlich keinen weiteren 
Interrupt gleicher Priorität ausführen.


> Der Timer startet nach abarbeitung der
> Interrupt-Routine zwar wieder von vorn,

Nein, der startet direkt nach dem Überlauf bzw. stop garnicht erst.
Wann Du den Interrupt abarbeitest, ist völlig unerheblich.

Dieses Verhalten ist ja gerade der Witz bei Hardware-Timern, daß nämlich 
die Ausführungszeit irgendwelcher Software keine Rolle mehr spielt.


Peter

von BerndB (Gast)


Lesenswert?

Hallo,

hast du das Timer2 Interrupt Flag (TF2) zurück gesetzt ?

Gruß Bernd

von user227 (Gast)


Lesenswert?

OK, danke hat sich erledigt. Das war ein Fehler im Unterprogramm.

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.