Forum: Mikrocontroller und Digitale Elektronik Timer0_OVF mit ATmega88


von Gaestle (Gast)


Lesenswert?

Hallo,

könnt ihr mir sagen warum der Timer0-Overflow nicht aktiv ist?

#include <avr/io.h>
#include <avr/interrupt.h>

int i=0;

int main (void) {

  DDRC  = 0x01;    //C0 als Ausgang
  PORTC = 0x01;      //CO high

  // Timer 0 konfigurieren
  TCCR0A = (1<<CS01); // Prescaler 8
  // Overflow Interrupt erlauben
  TIMSK0 |= (1<<TOIE0);
  // Global Interrupts aktivieren
  sei();

  while(1)
  {
  }
  return 0;
}

ISR (TIMER0_OVF_vect)
{
  i++;
  if(i>=500)
  {
    i=0;
  PORTC ^= (1<<PC0);
  }
}

von Hc Z. (mizch)


Lesenswert?

Du hast den µC-Typ nicht genannt.  Somit gibt es keine Möglichkeit, zu 
überprüfen, ob z.B. CS01 wirklich in TCCR0A ist (beim Mega88 z.B. 
nicht), ebenfalls nicht überprüfen lassen sich die anderen 
Registerzuweisungen und der Name der ISR.  Damit würde man aber 
sinnvollerweise beginnen.

Also: welcher µC?

von spess53 (Gast)


Lesenswert?

Hi

>Du hast den µC-Typ nicht genannt.

Titel ' Timer0_OVF mit ATmega88'

MfG Spess

von Hc Z. (mizch)


Lesenswert?

Ja, ich muss wohl langsam schlafen gehen ...

Glücklicherweise habe ich für diesen Fall (Mega88) die Antwort gleich 
mitgeliefert.  CS01 ist in TCCR0B, nicht TCCR0A.

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.