Witam
Problem jest nastepujacy
uzywam timer0 do multiplexowania.
co 4ms wywoluje mi sie przerwanie od przepelnienia timera wyswietlajac cyfre na kolejnym wyswietlaczu. Dane do wyswietlenia sa globalne.
w petli while co pewien czas(0,5 s ) wywoluje funkcje ktora zczytuje dane z czujnika ds1820 po 1wire.
Na wyswietlaczu LED pojawia sie co jakis czas 'zaklocenia'.
Podejrzewam ze w trakcie wykonywaniu kodu dotyczacego 1wire zglasza sie przerwanie timera zaburzajac odstepy czasowe tak wazne dla tej magistrali.
probowalem prosty mutex zrobic tzn zapis do zmiennych wyniku dopiero w przypadku kiedy wyjdzie mi z przerwania(w przeciwnym wypadku wychodzi z funkcji pomiaru) ale niestety tez srednio sie to sprawdza. czesto otrzymuje w czesci calkowitej 0x00;
W momencie kiedy wrzuce pomiar do przerwania timera ,jest ok. no ale jak latwo sie domyslec wynik strasznie skacze i mruga .
Problem jest nastepujacy
uzywam timer0 do multiplexowania.
co 4ms wywoluje mi sie przerwanie od przepelnienia timera wyswietlajac cyfre na kolejnym wyswietlaczu. Dane do wyswietlenia sa globalne.
w petli while co pewien czas(0,5 s ) wywoluje funkcje ktora zczytuje dane z czujnika ds1820 po 1wire.
Na wyswietlaczu LED pojawia sie co jakis czas 'zaklocenia'.
Podejrzewam ze w trakcie wykonywaniu kodu dotyczacego 1wire zglasza sie przerwanie timera zaburzajac odstepy czasowe tak wazne dla tej magistrali.
probowalem prosty mutex zrobic tzn zapis do zmiennych wyniku dopiero w przypadku kiedy wyjdzie mi z przerwania(w przeciwnym wypadku wychodzi z funkcji pomiaru) ale niestety tez srednio sie to sprawdza. czesto otrzymuje w czesci calkowitej 0x00;
W momencie kiedy wrzuce pomiar do przerwania timera ,jest ok. no ale jak latwo sie domyslec wynik strasznie skacze i mruga .