logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATmega32A - Poprawne wyświetlanie menu na wyświetlaczu 4x20

wagnerosss 15 Sty 2014 07:02 936 0
REKLAMA
  • #1 13178332
    wagnerosss
    Poziom 10  
    Witam serdecznie.

    Od dłuższego czasu tworzę kod do sterownika nawodnienia ogrodu. Projekt jest już właściwie w fazie końcowej. Zmieniłem obecnie wyświetlacz z 2x16 na 4x20, by móc pokazywać na głównym ekranie więcej informacji dotyczących danej sekcji. Z początku miałem problem z wyświetlaniem całości tylko na 2 wierszach, ale w miarę szybko znalazłem informację, że wyświetlacz 4-linijkowy (w przypadku HD44780) należy traktować jako 2-linijkowy z rozszerzonymi dwukrotnie wierszami.
    Myślałem, że to załatwi sprawę, lecz pojawił się inny problem. Główne informacje o stanie wyjść są wyświetlane w pętli, natomiast cała konstrukcja menu opiera się o projekt zaproponowany przez Pana Tomasza Francuza. Menu idealnie sprawdzało się na wyświetlaczu 2x16, niestety nie działa już tak dobrze na nowym. Problem polega na tym, że przy przejściu w górę z pierwszej pozycji na ostatnią na ekranie pojawiają się różne symbole. Dopiero przejście znacznikiem o kilka pozycji wyżej powoduje ponowne poprawne wyświetlanie. Myślę, że jest to związane z tą funkcją:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Funkcja odpowiedzialna za wyświetlanie menu wygląda tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Musiałem również wykomentować dwie linijki z końca, ponieważ zmienna charcnt przyjmowała różne wartości, prowadząc do czyszczenia fragmentów tekstu na wyświetlaczu. Stąd moja hipoteza, że to funkcja GetAddr szwankuje. Może ktoś miał podobny problem lub wie jak go rozwiązać?

    Funkcja przechodzenia do poprzedniej pozycji:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
REKLAMA