Forum: Mikrocontroller und Digitale Elektronik Interrupt disabled - Flags


von Bernie (Gast)


Lesenswert?

Hallo

Werden eigentlich die Flags auch gesetzt, wenn die Interrupts disabled 
sind? Bin mir diesbezüglich nicht sicher, ob das wirklich so ist.

von Peter II (Gast)


Lesenswert?

Bernie schrieb:
> Bin mir diesbezüglich nicht sicher, ob das wirklich so ist.

und sollen wir jetzt raten um welchen Controller es geht?

von M. K. (sylaina)


Lesenswert?

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?

von Bernie (Gast)


Lesenswert?

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

von Oliver S. (oliverso)


Lesenswert?

Gib halt mal "stm32 datasheet" ein, und schon bekommst du Hilfe zur 
Selbsthilfe.

Oliver

von Dumpfbacke (Gast)


Lesenswert?

Oliver S. schrieb:
> bekommst du Hilfe zur Selbsthilfe.

Das ist aber nicht beliebt. Da müsste man selbst nachdenken.

von Dr. Sommer (Gast)


Lesenswert?

Es werden die Flags in der Peripherie gesetzt, aber nicht die 
"Pending" Flags im NVIC. Erstere kann man dann manuell abfragen.

von Dr. Sommer (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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.

von Dumpfbacke (Gast)


Lesenswert?

Peter D. schrieb:
> Dann ist aber Deine Brille recht eng

Diese Brille nennt man "Scheuklappen".

von Bernie (Gast)


Lesenswert?

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 ??

von Carl D. (jcw2)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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
Noch kein Account? Hier anmelden.