Forum: Mikrocontroller und Digitale Elektronik AVR Compare Match OC1A Pin bei 2 gleichzeitigen Interrupts Verständnis


von Daniel (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine Frage, die sich mir aus dem Datenblatt nicht ganz 
erschließt.
Ich betreibe einen AVR ATmega8 Prozessor und verwende hauptsächlich 2 
Interrupts:
- Input Capture Interrupt
- Compare Match Interrupt

Bei letzterem ist die Konfiguration so, dass das COM1A1-Bit gesetzt ist, 
d.h. bei einem Compare Match wird der Port PB1 (OC1A) auf high gesetzt.

Was passiert nun, wenn beide Interrupts theoretisch gleichzeitig 
auftreten?
Welches wird zuerst ausgeführt? Soweit ich weiß, hat der AVR ja keine 
Interrupt Priorisierung oder geht es dann nach S. 46 Tabelle 18 im 
Datenblatt?

Angenommen beides tritt gleichzeitig auf, das Input Capture Interrupt 
wird zuerst ausgeführt (meinetwegen tritt dieses Ereignis 1 Takt zuvor 
ein, also nahezu gleich). Wird beim Erreichen des Compare Matches OC1A 
(was ja unmittelbar direkt 1 Takt später erfolgt oder ggf. direkt 
gleichzeitig) trotzdem direkt auf high gesetzt oder erst wenn das ICP 
Interrupt Vektor ausgeführt und der darin enthaltene Code abgearbeitet 
wurde und erst an dessen Anschluss der Compare Match Interrupt Vektor 
angesprungen wird?

Also die Frage ist, wird es direkt beim Erreichen des Timer Wertes OC1A 
gesetzt oder erst wenn der dazugehörige Interrupt Vektor angesprungen 
wird?

Danke.

von Spess53 (Gast)


Lesenswert?

Hi

>Welches wird zuerst ausgeführt? Soweit ich weiß, hat der AVR ja keine
>Interrupt Priorisierung oder geht es dann nach S. 46 Tabelle 18 im
>Datenblatt?

Datenblatt S.14:

The complete list of Vectors is shown in “Interrupts” on page 46. The 
list also
determines the priority levels of the different interrupts. The lower 
the address the higher is the priority level.

MfG Spess

von Oliver (Gast)


Lesenswert?

Die OCx-Pins werden von der Timerhardware gesetzt, völlig unabhängig von 
den ausgeführten Programm.

Oliver

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.