Forum: Compiler & IDEs Problem mit SIG_OUTPUT_COMPARE0


von Jens D. (jens) Benutzerseite


Lesenswert?

Hallo,

ich habe ein kleines Problem mit dem Compare..

So weit, wie ich die TImer verstanden habe habe ich eine Clock sorce,
einen prescaler und eine compare Funktion um eine 1/32 tel sekunde zu
erzeugen.


Mein versuch:

Timer initalisieren:
  // Clock 32768Hz an TOSc1 / 2
  //Timer2 Initalisieren Interupt jede Sekunde Externer Uhrenquarz
  ASSR = (1<<AS0);          //Externer Takteingang
  TCCR0 = (1<<CS01);          //16 Sampels / Sekunde
  OCR0 = 0x10;            //Compare Register
  TCNT0 = 0x00;            //The Timer/Counter
  TIMSK |= (1 << OCIE0);


Int handler:
SIGNAL (SIG_OUTPUT_COMPARE0)
{
    temp_out = TCNT0;
    temp++;
}


was ich nun nicht verstehe ist, dass ich immer auf 2 sekunden komme
(if (temp >= 31))
Aus irgend einem Grund loesst der compare nicht aus nur wieso??

von Jens D. (Gast)


Lesenswert?

Ahhh...
er löscht bei einem int nicht gleichzeitig das TCNT0 Register..

muss ich das immer per hand machen??

von A.K. (Gast)


Lesenswert?

CTC Mode verwenden.

von Jens D. (Gast)


Lesenswert?

Besten dank hat geklappt

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.