Witam,
Napisałem całkiem złożony programik w C, ale wykrzacza mi się w prostym fragmencie main'a, tzn. obsługa przerwań z timera działa, ale uC nie chce wejść do nieskończonej petli while(1). Nie działa ani w debugerze ani w rzeczywistym układzie. Pomóżcie co tu jest źle...
Oto fragment Kodu w AVRStudio
Proszę używac znaczników [code] - uzupełniłem.
[zumek]
Napisałem całkiem złożony programik w C, ale wykrzacza mi się w prostym fragmencie main'a, tzn. obsługa przerwań z timera działa, ale uC nie chce wejść do nieskończonej petli while(1). Nie działa ani w debugerze ani w rzeczywistym układzie. Pomóżcie co tu jest źle...
Oto fragment Kodu w AVRStudio
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#define OSC 10 // częstotliwość zegara w megahercach
#define TINIT 200
char cyfry [11] = {3, 159, 37, 13, 153, 73, 65, 31, 1, 9, 255};
char cyfryzkr [11] = {2, 158, 36, 12, 152, 72, 64, 30, 0, 8, 254};
char A,B,C,DD,L;
SIGNAL (SIG_OVERFLOW0)
{
TCNT0=TINIT;
L++;
if (L>4) L=1;
if (L==1) {PORTA=0xF7; if (A>10) A=10; PORTC=*(cyfry+A);} else
if (L==2) {PORTA=0xFB; if (B>10) B=10; PORTC=*(cyfry+B);} else
if (L==3) {PORTA=0xFD; if (C>10) C=10; PORTC=*(cyfry+C);} else
{PORTA=0xFA; if (DD>10) DD=10; PORTC=*(cyfry+DD);}
}
// Program główny
int main(void)
{
DDRC = 0xFF;
PORTC = 0xFF;
DDRA = 0xFF;
PORTA = 0xFF;
L=0;
char i=3;
TIMSK|=1;
TCNT0=TINIT;
TCCR0=5; //timer normal z prescaler i intem
sei();
while (1)
{
A=1+i;
B=1;
C=1+i-1;
DD=2;
}
return 0;
}
Proszę używac znaczników [code] - uzupełniłem.
[zumek]