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.
  Hi
>Jemand ne idee was ich falsch mach?
Deine Initialisierung passt eigentlich. Wahrscheinlich läuft dein 
Oszillator zu schnell.
MfG Spess
  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.
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
Mit Google-Account einloggen
  Noch kein Account? Hier anmelden.
 Thread beobachten
 Thread beobachten Seitenaufteilung abschalten
 Seitenaufteilung abschalten