Forum: Mikrocontroller und Digitale Elektronik LED sekundentakt blinken mit CTC


von Thomas (Gast)


Lesenswert?

Hallo,

ich möchte hier einfach eine LED im nahezu Sekundentakt blinken lassen.
CPU Frequenz : 16 000 000
prescaler : 1024
am 8 bit Timer : 256


Also 16000000/1024/256 = 61,04 Take pro Minute

Den OCR Wert lege ich auf (256 - 61)  195 fest.

In der ISR toggelt er die LED.

ABER: leider viel zu schnell.

Wo ist mein Gedankenfehler ??

Vielen Dank für die Hilfe

von Falk B. (falk)


Lesenswert?

@  Thomas (Gast)

>Also 16000000/1024/256 = 61,04 Take pro Minute

Richtig, das ist die Interruptfrequenz.

>Den OCR Wert lege ich auf (256 - 61)  195 fest.

Das verringert aber nicht die Frequenz sondern erhöht sie!

>Wo ist mein Gedankenfehler ??

So niedrige Frequenzen bekommt man direkt nicht hin, da macht man per 
Software-Teiler in der ISR. Dort zählt man bis 61 und toggelt dann, 
siehe Interrupt.

von Thomas (Gast)


Lesenswert?

>Den OCR Wert lege ich auf (256 - 61)  195 fest.

>Das verringert aber nicht die Frequenz sondern erhöht sie!

Falk Brunner schrieb:
>>Den OCR Wert lege ich auf (256 - 61)  195 fest.
>
> Das verringert aber nicht die Frequenz sondern erhöht sie!

AHHH na klar !!

OK also die Softwarelösung !

Danke

von Eumel (Gast)


Lesenswert?

Thomas schrieb:
> OK also die Softwarelösung !

Wieso, passt doch halbwegs? Einfach bei jedem Übelauf blinken lassen.

von Eumel (Gast)


Lesenswert?

Ne, quatsch, hatte mich von der Minute verwirren lassen....

von holger (Gast)


Lesenswert?

>OK also die Softwarelösung !

Oder einen 16Bit Timer nehmen.

von Rumpelsuri (Gast)


Lesenswert?

Ich mach jeweils mit dem Timer0 einen Tick, dh Interrupt, der alle 10ms 
kommt. Mit dem muesste man dann je auf 50 zehlen fuer eine Periode von 1 
sekunde

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.