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

[atmega8][C] Wyświetlacz LCD 2x16

marseel 13 Cze 2010 12:56 3497 3
REKLAMA
  • #1 8185220
    marseel
    Poziom 11  
    Witam!
    Chciałem podpiąć wyświetlacz ABC016002E. Jest on oparty na sterowniku zgodnym z HD44780(takie samo ustawienie pinów). Kontrastu na razie nie regulowałem. Ale nie w tym jest problem, gdyż program się zapętla tam gdzie nie powinien. Piny mam w następujący sposób podpięte:
    PD0 - RS
    PD1 - RW
    PD2 - E
    PD3 - D4
    PD4 - D5
    PD5 - D6
    PD6 - D7
    PB0 - dioda
    Tu znajduje się kod:
    LCD - kod źródłowy
    Kod zapętla się w następującym miejscu:
    LCD_Initalize -> LCD_WriteCommand -> _LCD_Write

    Gdzie jest pętla:
    while(LCD_ReadStatus()&0x80)Test();
    Test to mrugnięcie diodą.
    W czym może być problem ?
  • REKLAMA
  • #2 8186094
    hotdog
    Poziom 26  
    Musisz poczytać o tym sterowniku. Jego interfejs udostępnia odczyt statusu. Ja osobiście nigdy tego nie używałem. Podłączałem pin RW do masy i w ten sposób cały czas tylko zapisywałem dane na LCD.

    Jeżeli masz pewną bibliotekę, to sprawdź przede wszystkim połączenia między uC a LCD. Ewentualnie poszukaj takiej która nie odczytuje danych statusu, i podłącz RW do masy.

    Pozdr.
  • REKLAMA
  • #3 8186606
    janbernat
    Poziom 38  
    Prawdopodobnie pin R/W jest zwarty do masy- procesor wchodzi w pętlę czekając aż wyświetlacz wyśle sygnał że można już zapisywać.
    W tej pętli while będzie czekał do końca świata- chyba że dostanie sygnał z wyświetlacza.
    A nie dostanie- bo prawdopodobnie pin R/W jest zwarty do masy itd.
  • #4 8186915
    gaskoin
    Poziom 38  
    5 linijka kodu który wrzuciłeś :

    Cytat:

    // Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości


    + to co napisał przedmówca
REKLAMA