Hallo, ich benutze den ATmega16 und habe einen 16Mhz Quarz dran. Ich habe ein kleines Programm indem ich einen Timer zählen lasse mittels "_delay_ms(1000)", dadurch blinkt eine LED. F_CPU ist richtig gesetzt. Erst habe ich es mit der internen 8Mhz betrieben, funktioniert einwandfrei. Dann mit dem 16Mhz-Quarz, auch ok. Jetzt komme ich aber nichtmehr mit der Frequenz runter... D.h. setze ich die Fuses & F_CPU auf 8Mhz läuft er doppelt so langsam. Das selbe hab ich bei 1Mhz probiert, er ist extrem langsam. Jemand ne Ahnung warum?
definiere doppelt so langsam.... du hast 8MHz eingestellt und denkst dass er mit 4 MHz läuft? Wie misst du das? Lässt du dir den Takt ausgeben?
Sorry mein Fehler, hab an zu vielen Stellen F_CPU definiert, dass ich einen übersehen habe. Meine C Kenntnisse sind reicht bescheiden. Kann man F_CPU nur an einer Stelle definieren oder muss man das in jeder Datei in der F_CPU benötigt wird? Habe 1 Hauptprogramm, 1 LCD-Routine und 1 Unterprogramm und in allen wird mit delay gearbeitet.
Cris R. schrieb: > Kann man F_CPU nur an einer Stelle definieren oder muss man das in jeder > Datei in der F_CPU benötigt wird? ja, man sollte sie überhaupt nicht im quellcode stehen haben. Man sollte es direkt dem compiler übergeben. Ich habe es mir mir im Makefile eingetragen. keine Ahnung welche IDE du verwendest, es wird dort auf jeden Fall eine möglichkeit geben ein DEFINE festzulegen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.