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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.