@anshar - Wielkie dzięki! Z Twoją pomocą program zaczął w końcu działać. Niestety jednak nie do końca rozumiem dlaczego. Wiem, że problemem okazała się być funkcja lcd_read_half(). Nie wiem jednak dlaczego moja wersja tej funkcji była niepoprawna.
Moja wersja:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wersja @anshar'a:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Różnica jest taka, że ja w swojej funkcji zeruję 4 najstarsze bity zmiennej _odczyt (gdyż tak na prawdę interesują nas tylko 4 najmłodsze bity, bo odczytujemy tu połowę bajtu), a @anshar zostawia te bity. Co to zmienia?
Oprócz tego nie rozumiem
dlaczego w funkcji lcd_init występuje ustawienie portu D z sumą logiczną.
Moja wersja:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wersja @anshar'a:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Dzięki za podział na pliki. Chciałem to zrobić na koniec kiedy już mój sterownik będzie kompletny. Dodam jeszcze kilka funkcji.