-
-
Erfahrener Benutzer
Begeisterter Techniker
_delay_ms()???
Hi,
ich mache gerade meine ersten Schritte mit WinAVR
und 'nem ATMega8.
Ich hänge ein bischen daran, definierte Pausen zu
generieren.
Ich nutze dazu die Funktion " _delay_ms()" aus der
"/avr/delay.h".
Im makefile habe ich bei Frequency
"F_CPU = 3686400" eingetragen.
In meinem Code wird "_delay_ms(100);" zehn mal
durchlaufen. Offensichtlich ist mein "aktives Warten"
allerdings immer zu schnell.
An PB0 - PB3 hängt ein 7-Segment LCD mit 'nem 7447 Decoder.
Die Ziffern werden höchstens 'ne halbe Sekunde angezeigt.
Wenn ich "_delay_ms()" mit 200 belege, dann rasen die Ziffern.
In der "delay.h" steht folgendes zur Funktion "_delay_ms()":
"The maximal possible delay is 262.14 ms / F_CPU in MHz."
Das währen dann nach meiner Berechnung 71 Nanosekunden
bei 3,6864MHz??
Ich werd daraus ehrlich nicht schlau.
Kann mir da jemand 'nen Tip geben?
Danke,
tholan
-
Hallo!
Nein, nicht richtig - es sind dann max. 71ms! Du musst ja durch F_CPU in MHz teilen (also durch 3.6864)! 
Gruß, Bernd
-
Erfahrener Benutzer
Begeisterter Techniker
Ups!
Hab vielen Dank für Deine schnelle Antwort.
Wer lesen kann, ist zugegeben im Vorteil
.
tholan
-
Kann doch jedem passieren - ich hab das zuerst GANZ überlesen und mich gewundert, warum es nicht klappt - bis ich endlich den Hinweis "The maximal possible delay is 262.14 ms / F_CPU in MHz." entdeckt habe... *lol*
Gruß, Bernd
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen