Timer-Interrupt mit anderem Interrupt starten (STM-Board)

Gast #5741522
Lesenswert?

Hallo,

also es geht um ein STM32F4-Board. Ich möchte dass ein Timer-Interrupt 
erst dann ausgelöst wird, wenn ein High-Pegel an einem Eingang erkannt 
wird und anschließend immer weiter läuft unabhängig davon, ob das Signal 
wieder auf High geht. Also einfach nur ein einmaliger Startschuss.

Ich habe mir das so vorgestellt, dass ich in der Main.c-Datei eine 
globale Variable var=0 einführe und mit dem externen Interrupt des 
Signals diese Variable auf 1 setze.
Dann würde ich in der Callback-Funktion des Timer-Interrupts einfach die 
if-Bedingung mit var==1 UND-verknüpfen...

Wäre das so in Ordnung oder gibt es noch bessere Möglichkeiten. Ich habe 
mal irgendwo gelesen, dass man globale Variablen vermeiden sollte ;)
Gast #5741704
Lesenswert?

Der Timer kann sich auch komplett selbstständig starten, wenn eine 
steigende Flanke ankommt ("Slave Mode"). Dadurch hast du nur eine sehr 
kurze Latenz zwischen Flanke und Start des Timers und die Software wird 
nicht beeinflusst. Lies im Datenblatt nach, wie das geht.
#5742283
Lesenswert?

leonhh schrieb:
> weil er
> bestimmte Aufgaben zu erledigen hat.

Welche denn?
Oft ist es besser, wenn man beschreibt, wozu das Ganze gut sein soll, 
d.h. was die eigentliche Aufgabe ist. Dann wird einem nicht eingeweihten 
Leser das Problem viel klarer.
Anhand eines Teils eines Lösungswegs läßt sich nur schwer auf die 
Aufgabe zurück schließen.
Gast #5742328
Lesenswert?

Der Timer, der im Encoder-Modus läuft, fungiert als Zähler von zwei 
Quadratursignalen bzw. deren Änderungen. (Auslesung von Drehsensor, 
Encoder-Funktion ist genau für diese Anwendung vorgesehen). Dieser 
Drehsensor hat aber noch ein weiteres Signal, das nur einmal pro 
Umdrehung kommt.. und erst wenn dieses Signal zum ersten Mal 
durchgelaufen ist, soll der Zähler staten

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren