Gast
#595874
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 | |
2 | |
erreicht.
|
Anzeige
|
delay 1s bei 16 MHz
Gast
#595874
Ich 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.
Gast
#595998
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.
Gast
#596075
Ja ihr habt Recht, da wäre ein Timer besser angebracht. Antwort schreiben |
Anzeige
|