Hallo!! Ich hab ein Problem. Ich möchte das der Timer beim überlauf die konstante [a] um einen Wert erhöht. Das Problem ist aber, dass die konstante immer auf 0 bleibt, weil bei mir PORTC=0x05; die ganze zeit als ausgang ist und sich nichts ändert. Hat vielleicht jemand eine Ahnung, was falsch in meinem Programm ist? Weil ich denke das Programm hat keinen Fehler.
Danke im Vorraus!!!
#define F_CPU 3686400
#include <avr\io.h>
#include <avr/interrupt.h>
#include <util\delay.h>
uint8_t a;
ISR (TIMER1_OVF_vect)
{
a++;
}
int main (void)
{
TCCR1A=0x40;
TCCR1B=0x04;
TCNT1=0x0FFF;
DDRC=0x3F;
SREG=0x80;
TIMSK=0x04;
a=0;
sei();
while (true)
{
switch (a)
{
case 0: PORTC=0x05;
break;
case 1: PORTC=0x01;
break;
case 2: PORTC=0x02;
break;
case 3: PORTC=0x04;
break;
case 4: a=0;
break;
default: PORTC=0x07 ;
break;
}
}
return 0;
}
Lesezeichen