Myślę, że najpierw to przydałoby się bardziej sprecyzować twoje założenie do tego testowego programu, bo na podstawie opisu i pokazanego kodu można tylko próbować zgadywać. Zwykle tego nie robię - tzn nie zgaduję - ale ponieważ kolega jest chyba nowym użytkownikiem i początkującą osobą - to wyjątkowo spróbuję
Czy nie chodziło ci przypadkiem o to, żeby trzy razy wyświetlić na LCD jakiś tekst ale w taki sposób, żeby:
1. pojawił się pierwszy napis na LCD
2. wyświetlał się przez czas 1 sekundy
3. skasował się ten tekst
4. pojawił się drugi napis
5. wyświetlał się 1 sekundę
6. itd ???
Jeśli tak to zastanów się jak u ciebie działa pętla
Po pierwsze kardynalny mega BŁĄD (inicjalizację LCD robisz za każdym razem w pętli) .... kolega nie doczytał w książce (trzeba wrócić do niej jeszcze raz) o tym jak dzieli się funkcję main(). Że najpierw jest część gdzie robi się inicjalizację pinów, portów i różnych modułów, potem ew uruchamia globalne przerwania jeśli są akurat konieczne a dopiero potem robi się pętlę główną.
A u ciebie gdzie jest inicjalizacja LCD ? na początku main() ???? toż to się raz inicjalizuje i już działa - nie trzeba i wręcz nie można takiej inicjalizacji przeprowadzać wciąż w pętli!
ok załóżmy że poprawiasz kod i dajesz inicjalizację przed pętlę główną - ale co się dale w nim dzieje.
1. wyświetlasz tekst
2. ----!!!!!----- od razu go kasujesz (LCD_cls) po co ? w tym miejscu ?
3. odczekujesz 1 sekundę (_delay_ms(1000))
czy nie widzisz tego babola ?
chyba chodziło ci o:
1. wyświetlasz tekst
2. oczekujesz 1 sekundę
3. dopiero teraz kasujesz tekst i pętla rozpocznie się od nowa
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]