Timer2 initialisieren

Gast #2621977
Lesenswert?

Hallo,
Ich möchte Timer2 so initialisieren dass ich nach jedem Überlauf(100µs) 
einen Sendepuls erzeugen. Ich nehme den Prescaler 256 aber irgendwie 
klappts nicht weil ich wahrscheinlich entweder den falschen 
Prescaler(256) nehme oder einen Startwert dafür berechnen muss.

Also die Frage ist: wie wird der Startwert berechnet?

Controller: mega328p
F_CPU = 16Mhz


Timer2-Funktion:
void Timer2Init(void)
{
        TCCR2B = (1<<CS22)|(1<<CS11) ;
        TIMSK2 = 1<<TOIE2 ;

}

Danke.

Gruß
#2622019
Lesenswert?

Robert_1 schrieb:

> Also die Frage ist: wie wird der Startwert berechnet?

spess53 hats ja schon gesagt: CTC ist das was du suchst.

Aber um auch auf die Frage ein wenig einzugehen.

Deine Frage ist auf dem Niveau von:
Wenn ich präzise alle 2 Minuten 30 Sekunden "Aua" schreie, wie oft muss 
ich dann "Aua" schreien, bis 1 Stunde um ist.

That's it. Das ist im Prinzip die Berechnung die du machen musst. Und 
das ist so trivial, dass jeder sie hinkriegt, wenn er nur gewillt ist, 
ein bischen zu rechnen und sich überlegt, was so ein Timer eigentlich 
macht und wie er arbeitet.

FAQ ganz unten, letztes Kapitel
Gast #2622034
Lesenswert?

Hallo,

>Welcher Startwert?
Ich meine, der Startwert so zu wählen dass ich in der ISR einen Puls 
nach jedem Überlauf erzeugen kann.

ISR(....)
{

PORTB = ~PORTB;

TCNT2= 0
}
>Der Timer kann CTC

Okay bin nicht drauf gekommen weil ich das einfach nicht verstehe:-( was 
soll ich im Code dann ändern damit der Timer in dieses Modus betrieben 
wird?

Und wenn man den timer 2 in Normal Modus betreiben will, sollte man 
einen Startwert berechnen oder?

Danke
Gruß
Gast #2622046
Lesenswert?

Hi

>Okay bin nicht drauf gekommen weil ich das einfach nicht verstehe:-( was
>soll ich im Code dann ändern damit der Timer in dieses Modus betrieben
>wird?

Datanblatt Timer2 Register Description lesen. Stichwort WGM-Bits.

MfG Spess

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren