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

HD44780 Pytnie dot. Kodu -

danielskret 29 Kwi 2013 00:58 984 1
  • #1 29 Kwi 2013 00:58
    danielskret
    Poziom 6  

    Witam.
    Mam pytanie, uczę się programowania i mam problem.
    Wyświetlacz HD44780 ma 2 linie po 16 znaków.
    Problem w tym, że wyświetla mi w drogiej linii dopiero 41 znak tekstu, czyli według programu wyświetlacz ma 40 znaków na linii.
    Moje pyatnia:
    Jak ograniczyć do 16 znaków?
    Jak przenieść tekst do drogiej linii np. po pierwszym znaku (próbowałem z "/n", ale efekt to tylko jakiś znak z czterema poziomymi kreskami)?

    Prosił bym o wyjaśnienie mi tej części kodu:

    Cytat:

    // konfiguracja portów we/wy
    DDRB = 0xFF;
    DDRD = 0xFC;
    PORTB = 0xFF;
    PORTD = 0xF7;


    Szukając informacji na ten temat, trafiłem na to:
    <<<<OO>>>>
    Ale nie zabardzo mi to pomogło, jeśli chodzi o to, gdybym na przykład chciał zmienić podpięcie wyświetlacza z PB4, PB5, PB6, PB7 na np. PD0, PD1, PD2, PD3.


    Kod z którego korzystam:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 1
  • Pomocny post
    #2 29 Kwi 2013 08:42
    piotrva
    Moderator na urlopie...

    Musisz posłużyć się komendami ustawiania adresu zapisu danych.
    Te wyświetlacze mają pamięć 2*40 znaków (mają możliwość przewijania zawartości w prawo i lewo, żeby zobaczyć dalsze znaki) i aby przejść do drugiej linijki musisz zrobić odpowiednim poleceniem skok do adresu znaku 41.
    Co do części kodu, o której wyjaśnienie prosisz - zamień zapis szesnastkowy na binarny i zobacz za co są odpowiedzialne rejestry POTB/PORTD i DDRB/DDRD. Swoją drogą taki zapis (w formie szesnastkowej) to najgorszy i najmniej czytelny sposób z możliwych - sam zawsze stosuj operacji _BV lub lepiej przesunięć bitowych.
    Do poczytania:
    https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
    http://www.atmel.com/Images/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_datasheet.pdf

    0