Ich programmiere einen Atmega128 bei 16 MHz. Wie läßt sich am geschicktesten ein delay von 1 Sekunde erreichen? Bisher habe ich es mit
1 | for (i=0; i<70; i++) |
2 | delay_ms(15); |
erreicht.
|
Forum: Compiler & IDEs delay 1s bei 16 MHzIch programmiere einen Atmega128 bei 16 MHz. Wie läßt sich am geschicktesten ein delay von 1 Sekunde erreichen? Bisher habe ich es mit
erreicht. Mit einem Timer. Die _delay_xx-Funktionen sind nach wie vor immer noch zur Erzeugung kurzer Wartezeiten vorgesehen und nicht für Sekunden. Wenn es unbedingt mit den Funktionen sein soll, geht es reproduzierbar wohl nur mit Deiner Methode. Es geht um die Menüführung über ein LCD-Display. Zum Beispiel soll das Display nach Betätigung einer bestimmten Taste 10 Sekunden auf eine Eingabe warten. Da soll das Programm nicht weiter laufen. > Da soll das Programm nicht weiter laufen.
Dann lass den Prozessor in dieser Zeit schlafen, statt ihn endlos
sinnlos zu beschäftigen.
> nach Betätigung einer bestimmten Taste 10 Sekunden auf eine > Eingabe warten Was heißt "auf eine Eingabe warten"? Mit der Delayfunktion bedeutet es, egal, wie schnell eine Eingabe erfolgt, es dauert 10 Sekunden, bis das Programm wieder überhaupt irgendwas tut (sofern es nicht Eingaben in Interruptroutinen auswertet). Ich kenne zwar Geldautomaten, die so programmiert sind (die alten NCR-Schrippen der Postbank, die wollen ein kleines Gebet irgendwohin hören, bevor man die Geheimzahl eingeben darf), aber benutzerfreundlich würde ich so ein Verhalten nicht nennen. 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
Noch kein Account? Hier anmelden.
|
|