witam. Napisałem taki oto program. LCD jest podpięty w trybie 4ro bitowym.
Jest to tylko program testowy, jednak zastanawia mnie jedna rzecz, bowiem:
Wszystko działa i wyswietlany wynik jest oczywisty jednak w pewnym momencie lcd wyglada tak:
Za jakiś czas zaś lcd jest pusty. Jeżeli w pętli głównej zmienię waitms 50 na 1000 to program dłuższą chwile wszystko pokazuje dobrze, ale i tak prędzej czy później na lcd pojawiają się krzaczki niczym z matrixa.
Mój tok rozumowania jest taki; w pewnym momencie gdy lcd dostał ciąg instrukcji z głównej pętli, włącza się podprogram etykieta który zaś wysyła kolejne instrukcje które lcd źle interpretuje i przez to albo wyświetla nie w tym wierszu co potrzeba, albo powstają krzaki. Gdy atmega wraca do przerwanej instrukcji lcd zaś chcąc nie chcąc dostaje dane których się nie spodziewa i tak w kółko.
Tak więc, jeżeli mam racje (chyba, że jest inaczej
) to jak można się ustrzec przed takim zachowaniem? Myślę że jakiś reset lcd w instrukcji przerwania ale nie mogę nic znaleść na ten temat.
Program to sztuka dla sztuki, jednak zastanawia mnie to
Kod: text
Jest to tylko program testowy, jednak zastanawia mnie jedna rzecz, bowiem:
Wszystko działa i wyswietlany wynik jest oczywisty jednak w pewnym momencie lcd wyglada tak:
y=53
x=3y=53Mój tok rozumowania jest taki; w pewnym momencie gdy lcd dostał ciąg instrukcji z głównej pętli, włącza się podprogram etykieta który zaś wysyła kolejne instrukcje które lcd źle interpretuje i przez to albo wyświetla nie w tym wierszu co potrzeba, albo powstają krzaki. Gdy atmega wraca do przerwanej instrukcji lcd zaś chcąc nie chcąc dostaje dane których się nie spodziewa i tak w kółko.
Tak więc, jeżeli mam racje (chyba, że jest inaczej
Program to sztuka dla sztuki, jednak zastanawia mnie to