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
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.
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.
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.