Forum: Mikrocontroller und Digitale Elektronik ATMega2560 Timerproblem


von Manuel S. (Firma: S+S) (msimmerl)


Lesenswert?

Hallo Leute,

was ist da falsch?
Wie schon im Betreff erwähnt, verwende ich einen ATMega2560.

Nun will ich den Timer0 im CTC Modus laufen lassen.
Nur leider löst der Interrupt nicht aus...

Hier mal der Code:

// Timer 0 konfigurieren
TCCR0B = (1<<CS00) | (1<<CS01);  //CTC Modus (1), Prescaler 64 (1) (1)
TCCR0A = (1<<COM0B0) |(1<<WGM01);
OCR0B = 250-1; //((16000000/64)/1000) = 250
TIFR0 = (1<<OCF0B);
TIMSK0 |= (1<<OCIE0B);

Hab ich was vergessen oder falsch gemacht?

Gewollt ist das der jede ms auslöst.

Danke schon mal im Vorraus.

Grüße
msimmerl

von Manuel S. (Firma: S+S) (msimmerl)


Lesenswert?

Hat sich erledigt. Problem selber gelöst :)

von Oliver J. (skriptkiddy)


Lesenswert?

Manuel Simmerl schrieb:
> Hat sich erledigt. Problem selber gelöst :)
Und würdest du uns vielleicht die Lösung verraten?

von Manuel S. (Firma: S+S) (msimmerl)


Lesenswert?

Ich habs über den Timer 1 probiert und da funktionierte es auf anhieb.

Hier der Code:

OCR1A = 250 - 1;
TCCR1A = 0;
TCCR1B = (1<<WGM12) | (1<<CS11)| (1<<CS10);
TIMSK1 |= (1<<OCIE1A);

Grüße
msimmerl

von spess53 (Gast)


Lesenswert?

Hi

>Ich habs über den Timer 1 probiert und da funktionierte es auf anhieb.

Das ist aber keine Lösung . Die wäre es gewesen, wenn du beim Timer0 
statt OCR0B OCR0A benutzt hättest:

OCR0A = 250-1; //((16000000/64)/1000) = 250

Dann klappt es auch mit dem CTC.

MfG Spess

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.