Anfängerfrage zu Mehrfachtimern

Gast #1850913
Lesenswert?
• ▲
▼
Hello, world!

Wie geht der Profi vor, wenn er mehr als zwei regelmäßige Interrupts 
braucht (z.B. eine in SW emulierte Uhr mit Sekundentakt und eine 
Überachung eines DCF-77-Signals und ein Multiplexen von 
Siebensegmentanzeigen und .....)?

Mein (Amateur-)Ansatz wäre, den ggT der Requests als Timerwert zu 
nehmen, die Interrupts mitzuzählen und dann jeweils bei Bedarf die 
verschiedenen Aktionen auszulösen. Der Timer würde also nur so eine Art 
globale Interruptverwaltung antriggern.

Ist das die prinzipiell richtige Vorgehensweise oder gibt's da schlauere 
Ansätze?

Grüße
Frank
Gast #1850922
Lesenswert?
• ▲
▼
Ich bin kein Profi, jedoch löse ich es so:

- Ein Timerinterrupt einstellen dass er zB alle 5ms kommt.

- Dann kannst du verschiedene Variabeln definiren (ZählerEins, 
ZählerZwei,...)
Willst du zB eine Zeit von 100ms, dann ländst du den Zähler mit 20 
(20x5ms=100ms)

- Du dekrementierts diese Zähler bei jedem Interrupt und vergleichst 
diese mit 0. Ist ein Zähler bei 0(Zeit abgelaufen) setzt du ein 
Flag(BZählerEins, BitZählerZwei)

Somit musst du nur noch in einem Hauptprogramm diese Flags abfragen.

Ist ein Flag gesetzt führst du diese entsprechende Funktion aus und 
setzt das Flag zurück.

greez

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.