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

HD44780 -więcej niż 16 znaków w lini?

INTOUCH 25 Cze 2011 20:47 2038 5
REKLAMA
  • #1 9649803
    INTOUCH
    Poziom 30  
    Witam.
    Mój wyświetlacza posiada 2linie po szesnaście znaków.
    Korzystam z biblioteki Radzia HD44780
    http://radzio.dxp.pl/hd44780/hd44780_avr_4-bit_norw_c.htm

    Problem polega na tym , że po wpisaniu kodu:
    
    LCD_WriteText("Zakr. przetworn.");
    LCD_WriteText("0123456789");
    LCD_WriteText("0123456789");
    LCD_WriteText("Zakr. przetworn.");
    

    wyświetla mi się:
    W pierwszej lini: Zakr. przetworn.
    W drugiej lini: . przetworn.

    Zastanawiam się czy jest jakiś błąd w inicjalizacji.
    Wyliczyłem sobie, rzeczywiście do pierwszej linii wpisywanych jest 36 a nie 16 znaków.
  • REKLAMA
  • #2 9649811
    tadzik85
    Poziom 38  
    bad jest w twoim rozumieniu. 2 linia zaczyna się de fakto od adresu 0x80. I nie znajduje się zaraz za 2 linią. Gdyż nie ważna jaki rozmiar wyświetlacza w większości są kompatybilne.
    Zajrzyj do noty katalogowej wyświetlacza.
  • REKLAMA
  • #3 9649885
    gaskoin
    Poziom 38  
    INTOUCH napisał:

    Wyliczyłem sobie, rzeczywiście do pierwszej linii wpisywanych jest 36 a nie 16 znaków.


    40 znaków. Bierze się to stąd, że sterowniki do tych LCD są takie same same dla różnych wyświetlaczy np dla 4x40
  • REKLAMA
  • #4 9650147
    INTOUCH
    Poziom 30  
    No tak.
    tylko że ma m wyświetlacz 2x16 i korzystam z biblioteki dla wyświetlacz 2x16
    no chyba że złą bibliotekę podałem.
  • REKLAMA
  • #5 9650308
    piotrva
    VIP Zasłużony dla elektroda
    Nie, po prostu skorzystaj z funkcji locate lub odpowiednika. Bo de facto ram w sterowniku mieści 40 znaków dla każdej linijki, które można potem scrolować odpowiednimi funkcjami.
  • #6 9652902
    drzasiek
    Specjalista CNC
    Pozwoliłem sobie wykonać mały ilustrację, może zobaczysz o robisz źle.
    HD44780 -więcej niż 16 znaków w lini?
    Tak jak pisano Ci wyżej, LCD może mieć różna matrycę, różne ilości znaków wyświetlać, ale nie sposób projektować dla każdego LCD inny sterownik dlatego są to te same sterowniki. Tu masz jak widać sterownik, który potrafi obsłużyć LCD o nawet 40 znakach w linii. Na ilustracji masz na czarno pokazane komórki pamięci sterownika a na czerwono twój LCD, czyli to co na nim widzisz.
    Widać już dlaczego Ci się wyświetla co co się wyświetla?
    Dlatego, że nie przechodzisz do następnej linii więc kolejne znaki dopisywane są w tym samym wierszu, dopiero numer wiersza zostaje automatycznie zwiększony po przekroczeniu znaku 40.
    Jeśli chcesz przejść do następnej linii musisz to sterownikowi powiedzieć, na pewno jest jakaś funkcja do tego przeznaczona: cursor, locate, goto albo coś w tym stylu.
REKLAMA