Tach, wenn ich mir die üblichen Delay Loop Routinen ansehe, dann vernichten sie einfach Zeit, während der man nichts anderes tun kann. In der Steuerungstechnik benötigt man jedoch die Möglichkeit, mehrere Delays parallel zur gleichen Zeit ablaufen zu lassen. So sind zum Beispiel in Speicherprogrammierbaren Steuerungen (SPS), wo diese delays "Timer" heißen (hat nichts mit den Timern in Microcontrollern zu tun), eine dreistellige Anzahl parallel laufender Timer keine Seltenheit. Dafür bieten diese SPS-Timer keine hundertprozentige Genauigkeit und können bisweilen ein wenig in der Dauer schwanken. (genauer gesagt, um eine Zykluszeit der SPS) Es wird klar, dass die reine Zeitvernichtungsmethode in Loops hier nicht funktioniert, da dann nur eine Zeit und nicht mehrere parallel ablaufen können. Andere hier im Forum existierende Nachbildungen von SPS verbraten pro SPS Timer einen Hardware-Timer des AVR. Eine dreistellige Anzahl von Timern ist damit also nicht zu erreichen. Kennt jemand ein Programmbeispiel, bei dem mehrere parallele "Timer" (delays) parallel ablaufen können? Um deren Funktionieren zu verifizieren, könnte ich dieses so umschreiben, dass man für 14 Timer 14 Controller-Eingangspins als Timereingänge hernimmt und 14 Controller-Ausgangspins als Timerausgänge. Dann könnte man mit einem Oszilloskop überprüfen, ob die Funktion korrekt ist.
du nimmst einen timer (den vom microkontroller) und lässt den jede ms ein interrupt auslösen. in dem interrupt setzt du ein flag. in der hautschleife liest du das flag aus, und wenn das flag gesetzt ist, variable hochzählen, und auf bestimmte zählerstände überprüfen. und flag zurücksetzten nicht vergessen, am besten direkt nach der überprüfung.
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.