Hallo. Habe soeben eine kleine (Erste) Schaltung programmiert "Blink-LED" (Siehe Anhang). Leider stimmt die Taktzeit der LED nicht mit der eingestellten Taktzeit "_delay_ms(1000) // 1Sek" überein; _delay_ms(1000) ... kommt auf ca. 12 Sek _delay_ms(100) ... kommt auf ca. 1 Sek Hat das mit dem CPU-Takt zu tun? Wie bekomme ich eine genaue Taktung hin?
__Son´s B. schrieb: > Hallo. > > Habe soeben eine kleine (Erste) Schaltung programmiert "Blink-LED" > (Siehe Anhang). > > Leider stimmt die Taktzeit der LED nicht mit der eingestellten Taktzeit > "_delay_ms(1000) // 1Sek" überein; > > _delay_ms(1000) ... kommt auf ca. 12 Sek > _delay_ms(100) ... kommt auf ca. 1 Sek > > Hat das mit dem CPU-Takt zu tun? > Wie bekomme ich eine genaue Taktung hin? In dem du F_CPU auf die korrekte Taktfrequenz deines Controllers einstellst. Die ist wahrscheinlich 1 MHz. Selber schuld wenn man den Compiler anlügt.
PS: Wenn der CPU-Takt auf 1MHz gestellt wird, kommt die Sekunde ungefähr hin. Hat natürlich nichts mit Genauigkeit zu tun! Muss der CPU-Takt an die Blinkfreqenz angepasst werden? Wie kann ich praxisorientiert und einfach vor gehen?
__Son´s B. schrieb: > Muss der CPU-Takt an die Blinkfreqenz angepasst werden? Nein. Über die Fuse-Bits stellst Du ein, welche Taktquelle Du verwendest. Und mit F_CPU teilst Du dann dem Compiler mit, die isses. Ab Werk stehen die Fusebits erstmal auf 8MHz/8 intern RC.
Gast
#4357838
__Son´s B. schrieb: > Muss der CPU-Takt an die Blinkfreqenz angepasst werden? Der CPU-Takt steht normalerweise in dem Moment fest. Wo der Quarz/Oszillator/Resonator auf die Platine gelötet ist und ggf. die Fuses eingestellt sind. Alle anderen Anpassungen finden im Programm statt. > Wie kann ich praxisorientiert und einfach vor gehen? Indem du dem Compiler keinen Unfug erzählst.
__Son´s B. schrieb: > Muss der CPU-Takt an die Blinkfreqenz angepasst werden? > Wie kann ich praxisorientiert und einfach vor gehen? Nochmal: Du musst dem Compiler mittels F_CPU die tatsächliche Taktfrequenz deines Controllers mitteilen. Ist das so schwer zu verstehen?
