Witam szanownych kolegów!
Piszę mając nadzieję, że ktoś pomoże mi rozwiązać mój problem z którym borykam się już któryś dzień
Otóż programuję w Bascomie Atmegę 644pa-pu do komunikacji po UART z modemem ZTE2639AT.
Mam problem ze sprawdzaniem siły sygnału GSM. Otóż chciałbym przy pomocy przerwania od timera0 wykonywać takie sprawdzanie a jego wynik wyświetlać na lcd.
Oto mój kod:
Program po wgraniu do uC wykonuje inicjalizację modemu, uruchamia timer, generuje przerwanie (przechodzi do etykiety "Spr_zasiegu") i wysyła komendę Print "AT+CSQ" ale niestety na tym się kończy. Mimo, że modem ładnie odpowiada (widzę to w terminalu podpiętym pod PC) to uC tak jakby nie umiał odebrać tych znaków i staje na pętli Loop Until Bufor = "+CSQ:" .
Co ciekawe jeśli usunę z kodu timer0 i wstawię w główną pętlę wykonywanie "Gosub Spr_zasiegu" to wszystko działa poprawnie!
Moje pytanie jest takie: co może zmieniać timer0, że etykieta Spr_zasiegu nie wykonuje się poprawnie?
Z góry dziękuję za każdą sugestię.
Pozdrawiam!
Piszę mając nadzieję, że ktoś pomoże mi rozwiązać mój problem z którym borykam się już któryś dzień
Otóż programuję w Bascomie Atmegę 644pa-pu do komunikacji po UART z modemem ZTE2639AT.
Mam problem ze sprawdzaniem siły sygnału GSM. Otóż chciałbym przy pomocy przerwania od timera0 wykonywać takie sprawdzanie a jego wynik wyświetlać na lcd.
Oto mój kod:
Kod: text
Program po wgraniu do uC wykonuje inicjalizację modemu, uruchamia timer, generuje przerwanie (przechodzi do etykiety "Spr_zasiegu") i wysyła komendę Print "AT+CSQ" ale niestety na tym się kończy. Mimo, że modem ładnie odpowiada (widzę to w terminalu podpiętym pod PC) to uC tak jakby nie umiał odebrać tych znaków i staje na pętli Loop Until Bufor = "+CSQ:" .
Co ciekawe jeśli usunę z kodu timer0 i wstawię w główną pętlę wykonywanie "Gosub Spr_zasiegu" to wszystko działa poprawnie!
Moje pytanie jest takie: co może zmieniać timer0, że etykieta Spr_zasiegu nie wykonuje się poprawnie?
Z góry dziękuję za każdą sugestię.
Pozdrawiam!