Forum: Mikrocontroller und Digitale Elektronik kleine blinkfrequenzen mit 8 bit timer erreichen?!


von marcel (Gast)


Lesenswert?

hi,

mein problem ist das ich unter akuten Timermangel leide ;)

ist es irgendwie möglich mit einen 8 bit timer auch kleine Frequenzen ( 
1,2 ... Hz) darzustellen?


dir Formel lautet ja fürs OCRA register:

OCR1A = (F_CPU /(2  1024  f) ) -1 ; f ist meine gewollte Frequenz

bei einem 8bit timer wäre ja bei 255 für ocra schluss, und wenn f klein 
ist komm ich ja nich an diesen wert ran.

von Peter II (Gast)


Lesenswert?

marcel schrieb:
> mein problem ist das ich unter akuten Timermangel leide ;)
dann ist es doch gut das der Timer so schnell ist

> ist es irgendwie möglich mit einen 8 bit timer auch kleine Frequenzen (
> 1,2 ... Hz) darzustellen?
geht es um PWM oder braucht die die Frequenz in der Software?
Mann kann ja selber noch ein Zähler mitführen und damit einen 
zusätzlichen Teiler schaffen.

von Martin (Gast)


Lesenswert?

marcel schrieb:
> bei einem 8bit timer wäre ja bei 255 für ocra schluss, und wenn f klein
> ist komm ich ja nich an diesen wert ran.

Wer sagt den, dass du bei jedem Timerdurchlauf den Zustand der LED 
ändern musst?

von Thomas E. (thomase)


Lesenswert?

marcel schrieb:
> mein problem ist das ich unter akuten Timermangel leide ;)
Ach was.
Wenn es nur um's Blinken geht, nimmst du irgendeinen deiner Timer, den 
du schon benutzt und der einen regelmässigen Interrupt auslöst. In 
dieser ISR zählst du eine Variable hoch und wenn diese einen bestimmten 
Wert erreicht hat, setzt du ein Flag. Das fragst du im Hauptprogramm ab 
und behandelst das entsprechend.

if (Flag)
{
  TogglePort();
  Flag = 0;
}

mfg.

von Matthias L. (Gast)


Lesenswert?

>zählst du eine Variable hoch und wenn diese einen bestimmten
>Wert erreicht hat, setzt du ein Flag. Das fragst du im Hauptprogramm ab
>und behandelst das entsprechend.

Oder statt des Setzen des Flags einfach die LED toggeln. Aber das ist zu 
einfach

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.