Forum: Mikrocontroller und Digitale Elektronik Taktfrequenz vs. Blinkfrequenz


von __Son´s B. (bersison)


Angehängte Dateien:

Lesenswert?

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?

von Cyblord -. (cyblord)


Lesenswert?

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

von __Son´s B. (bersison)


Lesenswert?

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?

von Peter D. (peda)


Lesenswert?

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

von Wolfgang (Gast)


Lesenswert?

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

von Cyblord -. (cyblord)


Lesenswert?

__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
Noch kein Account? Hier anmelden.