www.mikrocontroller.net

Forum: Compiler & IDEs delay 1s bei 16 MHz


Autor: TechInfo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich programmiere einen Atmega128 bei 16 MHz.

Wie läßt sich am geschicktesten ein delay von 1 Sekunde erreichen?

Bisher habe ich es mit
for (i=0; i<70; i++)
  delay_ms(15);

erreicht.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: TechInfo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Da soll das Programm nicht weiter laufen.

Dann lass den Prozessor in dieser Zeit schlafen, statt ihn endlos
sinnlos zu beschäftigen.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.


Autor: TechInfo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ihr habt Recht, da wäre ein Timer besser angebracht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.