Forum: Mikrocontroller und Digitale Elektronik STM32 CC Flags einzeln sperren


von STM (Gast)


Lesenswert?

Hi, kann mir jemand sagen ob es möglich ist bei einem STM32 die Capture 
Compare Flags einzeln zu sperren. Sprich ich brauche jetzt das CC3 Flag 
und möchte aber in einem anderen Teil des Programms kein Auslösen dieses 
Flags mehr.

Momentan sehe ich nur die Möglichkeiten ständig das CC neu zu setzen 
oder eine zweite Bedingung in die IF-Abfrage zu stecken die mir den 
Aufruf dann blockt. Gibts da eine Elegantere Lösung.
Ganz abschalten kann ich den Timer nicht, da ich die anderen CCs noch 
benötige.

Gruß

von Reinhard B. (brainstorm)


Lesenswert?

Bin mir nicht ganz sicher, was du mit 'Flag sperren' meinst, aber vll. 
suchst du nach dem CC2IE bit im TIMx_DIER Register?

mfg
Reinhard

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Bitbanding-Register?
(oder wie das heißt)

von STM (Gast)


Lesenswert?

Das DIER Register ist nur für die Interrupts zuständig. Gegen die 
"normalen" CC-Flags kann das nichts ausrichten. Und ich denke jetzt 
meine Funktion in die Interrupts zu schreiben macht noch mehr Stress als 
einfach mein zusätzliches Sperrflag einzufügen. Aber danke


Was meinst du mit Bitbanding? Ich kenne das nur unter der Funktion des 
gleichzeitigen setzen und Rücksetzen von mehreren Bits.

von Reinhard B. (brainstorm)


Lesenswert?

STM schrieb:
> Gegen die
> "normalen" CC-Flags kann das nichts ausrichten.

Was verstehst du unter den "normalen" Flags?

von STM (Gast)


Lesenswert?

Damit meine ich die Time Flags: z.B. "TIM_FLAG_CC2" die im Gegensatz zu 
den IT-Flags scheinbar immer gesetzt werden bei einem CC wenn der Timer 
aktiviert wurde.

von Reinhard B. (brainstorm)


Lesenswert?

Hm...ja, diese Flags werden scheinbar immer gesetzt.

STM schrieb:
> oder eine zweite Bedingung in die IF-Abfrage zu stecken die mir den
> Aufruf dann blockt.

Ich finde diese Lösung nicht un-elegant - im Gegenteil. Ich habe aber 
bis jetzt nicht ganz kapiert, was du wirklich erreichen willst...

Würde mir vielleicht nochmal Gedanken über die CCxIE Bits im DIER und 
die CCxIF Bits im SR machen. Auch wenn du das Problem scheinbar nicht in 
einer ISR lösen willst - beim CC ist das meiner Meinung nach das Mittel 
der Wahl. Unter Umständen kannst du ja in der ISR einfach eigene Flags 
setzten und dann an anderer Stelle im Programm entsprechend darauf 
reagieren.

mfg

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.