Hallo Werden eigentlich die Flags auch gesetzt, wenn die Interrupts disabled sind? Bin mir diesbezüglich nicht sicher, ob das wirklich so ist.
Bernie schrieb: > Bin mir diesbezüglich nicht sicher, ob das wirklich so ist. und sollen wir jetzt raten um welchen Controller es geht?
Peter II schrieb: > Bernie schrieb: >> Bin mir diesbezüglich nicht sicher, ob das wirklich so ist. > > und sollen wir jetzt raten um welchen Controller es geht? Wahrscheinlich um einen AVR Bernie schrieb: > Werden eigentlich die Flags auch gesetzt, wenn die Interrupts disabled > sind? Bin mir diesbezüglich nicht sicher, ob das wirklich so ist. Ich meine Ja, der Interruptvektor wird halt nur angesprungen wenn auch das entsprechende Enable-Flag gesetzt ist. Wir reden doch über AVRs, oder?
Ich gab stm32 ein und dieses Forum kam heraus. Dachte dies wäre klar und wusste nicht, dass es Controllerabhängig ist. Ich spreche generell über stm32 uC. Das heisst also, die Flags werden zwar gesetzt, aber in den Interruptvektor wird nur gesprungen, wenn auch der Interrupt enabled ist? Danke
Gib halt mal "stm32 datasheet" ein, und schon bekommst du Hilfe zur Selbsthilfe. Oliver
Oliver S. schrieb: > bekommst du Hilfe zur Selbsthilfe. Das ist aber nicht beliebt. Da müsste man selbst nachdenken.
Es werden die Flags in der Peripherie gesetzt, aber nicht die "Pending" Flags im NVIC. Erstere kann man dann manuell abfragen.
Dr. Sommer schrieb: > Es werden die Flags in der Peripherie gesetzt, aber nicht die > "Pending" Flags im NVIC. Erstere kann man dann manuell abfragen. PS: Das gilt natürlich nur wenn nur der eine Interrupt abgeschaltet wurde... Wenn der immer noch an ist (im NVIC), aber man alle Interrupts global abgeschaltet hat (über "cpsid i"), werden auch die Pending Flags im NVIC gesetzt. Sobald man die Interrupts wieder eingeschaltet ("cpsie i") hat, werden die ISR's angesprungen.
Bernie schrieb: > Ich gab stm32 ein und dieses Forum kam heraus. Dachte dies wäre klar und > wusste nicht, dass es Controllerabhängig ist. Dann ist aber Deine Brille recht eng, wenn Du unter "Forum: Mikrocontroller und Digitale Elektronik" ausschließlich STM32 verstehst. Es gibt auch noch andere MCs.
Dr. Sommer schrieb: > Dr. Sommer schrieb: > Es werden die Flags in der Peripherie gesetzt, aber nicht die > "Pending" Flags im NVIC. Erstere kann man dann manuell abfragen. > > PS: Das gilt natürlich nur wenn nur der eine Interrupt abgeschaltet > wurde... Wenn der immer noch an ist (im NVIC), aber man alle Interrupts > global abgeschaltet hat (über "cpsid i"), werden auch die Pending Flags > im NVIC gesetzt. Sobald man die Interrupts wieder eingeschaltet ("cpsie > i") hat, werden die ISR's angesprungen. Danke an Sommer und Koehler ??
In gefühlt jedem DB steht doch sinngemäß drin: "wenn du Int-Enable-x setzt, dann sorg dafür, daß du vorher Int-Flag-x ge-cleared hast, oft durch reinschreiben von "1", denn sonst feuert der Int-x sofort." Ist ja auch schwer anders vorstellbar, wenn man davon aus geht, daß Chip-Hersteller nur nur ungern extra Silizium verbraten, um HW für etwas zu bauen (Flankenerkennung), was man zu 99.99999% der Zeit nicht braucht, und wenn, einfach durch eine Zeile Software erledigt werden kann.
Bei den meisten MCs kann man auch alle Interruptquellen per Polling bedienen, d.h. das Flag in SW testen und löschen.
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.