Witam
Chciałem wykorzystać przerwanie od przepełnienia licznika do generowania opóźnień w układzie. Idea jest taka, żeby w momencie, gdy potrzebujemy opóźnienie przypisać jakiejś zmiennej określoną wartość dekrementowaną z kolei w przerwaniu licznika. Wszystko pięknie, tylko nie chce działać... Kod wygląda następująco.
Przerwanie:
Pętla główna, pętla while:
Tak napisany program nie działa - tekst nie zostaje wypisany na wyświetlaczu. O dziwo (dla amatora jak ja
), gdy odkomentuję itoa(deb,nmb_to_str,10);, wszystko działa jak należy. Ma ktoś może pomysł, dlaczego tak się dzieje? Z góry dzięki wszystkim za odpowiedzi.
Pozdrawiam.
PS SW1 to przycisk, deb - ów dekrementowana zmienna odpowiedzialna za opóźnienie.
Chciałem wykorzystać przerwanie od przepełnienia licznika do generowania opóźnień w układzie. Idea jest taka, żeby w momencie, gdy potrzebujemy opóźnienie przypisać jakiejś zmiennej określoną wartość dekrementowaną z kolei w przerwaniu licznika. Wszystko pięknie, tylko nie chce działać... Kod wygląda następująco.
Przerwanie:
ISR(TIMER0_OVF_vect)
{
if(deb>0) deb--;
}Pętla główna, pętla while:
while(1)
{
if(!(PINC & (1 << SW1)))
{
deb=5;
while(deb != 0)
{
// itoa(deb,nmb_to_str,10);
}
if(!(PINC & (1 << SW1))) lcd_write_text("tekst");
}
}Tak napisany program nie działa - tekst nie zostaje wypisany na wyświetlaczu. O dziwo (dla amatora jak ja
Pozdrawiam.
PS SW1 to przycisk, deb - ów dekrementowana zmienna odpowiedzialna za opóźnienie.