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.
__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?
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.
