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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.