Hallo zusammen, ich habe folgendes Problem Eine TRIGGER_ISR ladet einen Timer, welcher dann in einer TIMER_ISR ein Bit toggelt. Nur es kann passieren dass die TRIGGER_ISR und die TIMER_ISR fast gleichzeitig ausgelösst werden, wenn die TIMER_ISR die "erste" ist ist das kein Problem, allerdings wenn die TRIGGER_ISR zuerst ausgeführt wird verschiebt sich der TIMER_ISR um die Runtime der TRIGGER_ISR. Kann ich irgendwie dem MSP sagen er darf die TRIGGER_ISR unterbrechen? um dann die TIMER_ISR zu starten? gruss Thomas
meines Wissens geht das nicht, da der externe Trigger eine höhere Priorität als der Timer-Trigger hat. Somit muss der Timer warten, bis der Port-Trigger fertig ist. Lösungsansatz: In der Trigger-ISR ab und zu das Timer-Interrupt-Flag pollen und entsprechend reagieren.
> Kann ich irgendwie dem MSP sagen er darf die TRIGGER_ISR > unterbrechen? um dann die TIMER_ISR zu starten? Das GIE-Flag in der Trigger-ISR wieder einschalten (_EINT() beim IAR-Compiler bzw. bis #GIE, sr)
Super, danke funktoiniert, ich habe zuerst vergessen das Interruptflag 0 zu setzten, und habe die globelen Interrupts vorher wieder eingeschalten. Gibt es eigentlich eine möglichkeit nur eine art (timer) interrupt in er anderen ISR zuzulassen, ich habe es jetzt so gemacht, dass ich alle anderen interrupts deaktiviere und dann dien globalen setzte, das dürfte die einzige köglichkeit sein oder? gruss Thomas
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.