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
Frank schrieb: > 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. Genauso.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.