Guten Abend Kollegen, es geht um ein Programm in Assembler. Ich habe den Ablauf bei AVR Studio simulieren gelassen. Es gibt eine Kleinigkeit, die ich nicht verstehe. Wenn Overflow-Interrupt ausgelöst wird. Dann werden Flags OCF0B und OCF0A in TIFR-Register gesetzt. Das bedeutet, wenn später CompareMatch_A- und CompareMatch_A-Interrupt aktiviert wird. Dann werden die Interrups sofort ausgelöst. Das möchte ich nicht. Wie kann man das Problem beseitigen?
:
Verschoben durch Moderator
Hallo, Alex schrieb: > Wenn Overflow-Interrupt ausgelöst wird. Dann werden > Flags OCF0B und OCF0A in TIFR-Register gesetzt. Das ist erstmal völlig falsch ausgedrückt... Die Flags werden gesetzt, wenn a) das zugehörige Mask-Bit gesetzt ist und b) der CompareMatch aufgetreten ist. Dann wird ein Interrupt ausgelöst... > Das bedeutet, wenn > später CompareMatch_A- und CompareMatch_A-Interrupt aktiviert wird. > Dann werden die Interrups sofort ausgelöst. Das möchte ich nicht. > Wie kann man das Problem beseitigen? Wenn sowas beim Initialisieren des Timers passiert oder weil der Timer schon läuft, bevor man die globalen Interrupts freigibt und man das nicht will, dann kann man die Flagbits durch Schreiben einer "1" auch von Hand löschen. Datenblatt... Gruß aus Berlin Michael
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.