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?
Gast
#2624488
Cris R. schrieb: > Jemand ne Ahnung warum? setzt das F_CPU auch an der richtigen stelle? Quellcode?
Gast
#2624490
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.
Gast
#2624509
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.
Ich arbeite mit AVR Studio 5
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.