Gast
#120855
Hi Leuts,
ich versuche hier mit CodeVision auf einem Mega16 einen Timer von 10 ms
hinzubekommen.
Also alle 10 ms soll ein Interrupt ausgelöst werden.
Zu Testzwecken will ich da bis 100 zählen und dann eine Led blinken
lassen. Die sollte also im Sekundentakt blinken. Aber hier bei mir
dauert das 3 Sekunden. Hat einer eine Idee woran das liegt ? Overhead
von C ?
Quarzfrequenz = 4,194304 MHz
Codeauszug:
Init:
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;
TCCR1A=0x00;
TCCR1B=0x01;
TCNT1H=0x63;
TCNT1L=0xC0;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
// Reinitialize Timer 1 value
TCNT1H=0xC0;
TCNT1L=0x63;
// Place your code here
if (j < 100)
{
j++;
} else {
++i;
PORTC = ~i;
j=0;
}
}