Mehrfachverwendung v. Timer (AVR)

Gast #406160
Lesenswert?

Hallo,

viele AVR's und andere µC haben 2 Timer, die entweder als 2 separate
8-Bit Timer laufen oder als ein gemeinsamer 16-Bit Timer. Wie kann man
mehrere Timer-Funktionen am besten realisieren? Konkret brauche ich
jeweils einen Timer für

 - einen Funktionsaufruf alle 0...5 Sek., Auflösung in 0,25 Sek.
 - zur Feststellung eines Timeouts, 0...50 ms, Auflösung in 0,5 ms,
 - allg. Timingfunktionen (Funktionsaufrufe), Millisekundenbereich
 - evtl. Zeitmessung im Millisekundenbereich

Wie geht man sowas an? Zu berücksichtigen ist dabei, daß einzelne
Timingfunktionen währende der Laufzeit ab- und zuschaltbar sein
müssen.

Gruß
  Hegy
Gast #406162
Lesenswert?

Ich würde einen Timer so einstellen, dass dieser jede Millisekunde einen
Interrupt ausslöst. In der ISR werden dann irgendwelche Variablen hoch-
oder runtergezählt, mit denen man dann die anderen Zeitbasen herstellt.
Gast #406163
Lesenswert?

Am besten machst du das, indem du einen gemeinsamen Teiler suchst, denn
250 ms passen in 0,5 ms und so weiter. Dann "guckst" du in einer
Zählervariable, ob der 250-ms-Code ausgeführt werden muss und so
weiter.

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