ATTiny2313 Timer0 interrupt

Gast #2770276
Lesenswert?

Hallo,
ich hab probleme mit dem internen Takt (1MHz) einen interrupt zu 
erzeugen.
und zwar will ich alle 1ms einen Interrupt, um dann sekunden rauf 
zuzählen.
dies funktioniert allerdings überhaupt nicht, die frequenz ist viel 
zuhoch(nach 1 stunde laufzeit sind >1,5h vergangen).

initalisierung-code:

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

  TCCR0A = (1<<WGM01);
  TCCR0B |= (1<<CS01);
  OCR0A = 125-1;
  TIMSK |= (1<<OCIE0A);
  sei();


Interrupt:

ISR (TIMER0_COMPA_vect)
{
  millisekunden++;
  if(millisekunden==1000)
  {
    millisekunden=0;
    taktStatus=!taktStatus;
    sekunde++;
  }
}


Jemand ne idee was ich falsch mach?
danke im vorraus.
Gast #2770332
Lesenswert?

Musst mal bei ATMEL schauen. Wenn du den internen Oszillator verwendest 
kannst du ihn zwischen 0,75 - 1,5 mal Takt kalibrieren (soweit ich mich 
erinnere). Ganz genau bekommst du das natürlich nur mit externem Quarz 
hin.

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