Hallo, ich habe eine frage zu dem obigen Timer. Er stammt vom MSP430 und ich frage mich, welche Bewandnis es damit auf sich hat, dass die Interruptquelle Nr.49 mit TA1CCR0 sowie das CCIFG0 gegenüber der Interruptquelle Nr.48 mit TA1CCRi und CCIFGi --- i aus [1, 2] exponiert behandelt wird...? Warum wird das TA1CCR0 nicht mit in den "normalen" Interruptvektor mit aufgenommen? mfg
z.B.: CCR0: soll alle 5ms ein Interrupt auslösen CCR1: soll alle 10ms ein Interrupt auslösen Durch die höhere Priorität von CCR0 ist gewährleistet, dass zu den Zeitpunkten bei denen beide Interrupts gleichzeitig ausgelöst werden, der CCR0 Interrupt zuerst bearbeitet wird.
danke, nochmal zum Verständnis hinterher: Das CCR0-flag wird gesetzt, sobald der Wert des TA1R-Registers mit demjenigen des CCR0-Registers übereinstimmt, also der TA1CCR0 gesetzt wird? ...und das CCIFG0 wird wiederum gesetz, wenn der Timer wieder auf Null zurück gesetzt wird, richtig? Wenn ich nun also den Up-Mode verwende, dann fallen aber doch beide Zeitpunkte zusammen, und ich müsste in diesem Interrupt nur das CCIFG auswerten, richtig? dies wiederum würde dazu führen, dass nur der Vektor TA1IV ausgewertet werden müsste, richtig? mfg
Die Frage ist nach wie vor aktuell. ...und es kommt noch eine weitere oben drauf: Angenommen ich nutze den Continuous Mode und addiere in jeder ISR immer einen konstanten Wert in mein CC-Register, so dass irgendwann der 16-Bit Wert erreicht wird. Was passiert beim Überlauf? Ist es dann so etwas wie eine Modulo(2^16-1)-Addition, oder bleibt das CC-Register dann bei FFFF stehen? mfg
Steht alles im Family Guide, mit Bsp. und allem was man so braucht.
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.