tholan
30.01.2006, 14:39
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
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