Hallo, Ich habe am Port B des STM8S105K6 fünf externe Interrupts. Von anderen Controllern kenne ich es so, dass ich für jeden dieser Interrupts ein eigene Interrupt Service Routine schreibe. Beim STM8 aber gibt es eine ISR für den gesamten Port und nicht für jedes einzelne Portpin. Wenn diese Routine also aufgerufen wird muss ich erstmal feststellen welcher Interrupt ausgelöst hat. Port B1 oder B3 oder B6 oder ...? Gibt es dazu eine saubere Lösung? Ich habe noch nichts dazu gefunden und mir selbst eine Lösung einfallen lassen indem ich die Zustände aller Portpins einlese und mit denen vom letzten Aufruf der Routine vergleiche. Funktioniert zwar aber ist meiner Meinung nach nicht wirklich elegant und es bläht meine ISR nur unnötig auf.
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.