Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATmega8] Obsługa wyświetlacza LCD [c]

11 Kwi 2011 11:02 3709 4
  • Poziom 8  
    Witam.

    Chciałem napisać program wyświetlający napis 'Hi' na wyświetlaczu LCD JHD 162A. Sterownikiem jest HD44780. uC : ATmega8A, zegar wew. 4MHz.
    Pomimo przeczytania wielu tutoriali nie mogę zmusić go do pracy 8 bitowej. Wzorowałem się na na kursie z EDW z 2005 r.

    Nie wiem czy dobrze jest przeprowadzona inicjalizacja wyświetlacza. Testowałem różne czasy, niestety bez efektu. Wyświetlacz jest sprawny, wgrałem 'gotowca' z trybem 4-bitowym i działało.

    Próbowałem przeprowadzić inicjalizacje wg. tej strony: Link
    Również bez rezultatu. Funkcje są proste, chyba nie ma w nich błędów. Będę wdzięczny za każdą pomoc.
    kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 38  
    Bibliotekę radzia testowałeś?
  • Pomocny post
    Poziom 29  
    Witam!
    Wykorzystujesz jeden z bitów w porcie danych na sygnał sterujący RS i stąd Twoje kłopoty.
    W funkcji lcd_data() ustawiasz bit LCD_RS a potem wywołujesz LCD_send(), w której wysyłasz daną instrukcją LCD_DPORT = data; - przy okazji kasując sobie bit LCD_RS zanim wykonasz instrukcję wyświetlacza przez lcd_pulse().
    Pozdrawiam!
  • Poziom 8  
    chudybyk- oczywiście masz rację. Nie wiem jak mogłem tego nie zauważyć!
    Poprawiłem te dwie funkcje. Niestety dalej nic się nie dzieje.
    funkcje wyglądają teraz tak:


    Kod: c
    Zaloguj się, aby zobaczyć kod




    EDIT:
    Ciekawa sprawa. Biblioteka ze strony Radzia: Link oparta na wyświetlaniu w trybie 8-bitowym bez sprawdzania flagi zajętości u mnie nie działa. Natomiast biblioteka ze sprawdzaniem flagi zajętości działa. Problem więc leży pewnie w wymaganych opóźnieniach.