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

Winstar OLED 16x2 - kod inicjalizacji, wyświetlacz nie działa

Tomq 03 Kwi 2015 20:16 1278 3
REKLAMA
  • #1 14586925
    Tomq
    Poziom 38  
    Witam.

    W swoim projekcie zamiast najzwyklejszego lcd hd44780 wstawiłem WINSTAR OLED http://elkom-serwis.com.pl/winstar-lcd-oled/2...h1602-b2-yyh-podsw-led-y-g-cyrylica-16x2.html i wyświetlacz nie pokazuje absolutnie nic.
    Wyczytałem , że hardwarowe te wyświetlacze są identyczne (można podłączyć pinami 1:1), jednak różnią się nieco inicjalizacją.

    Korzystam z biblioteki do obsługi 4 bitowego trybu z odczytem RW ze strony http://radzio.dxp.pl/hd44780/


    W temacie https://www.elektroda.pl/rtvforum/topic2643716.html#13399090 w poście nr jest mowa o dodatkowych komendach inicjalizujących.

    Czy ma ktoś 100% pewny kod obsługi wyświetlacza, którym mógłby się podzielić?
  • REKLAMA
  • #2 14587153
    Drako1988
    Poziom 20  
    Witam

    Odnośnie sprawdzonego kodu to takowego nie posiadam, natomiast w bibliotece Radzia jest dość poważny błąd. Mianowicie, przy sprawdzaniu flagi BUSSY nie ma żadnego timeoutu. Oznacza to, że jeśli wyświetlacz nie odpowie ready to program utknie w nieskończonej pętli while. Niestety napsuło mi to kiedyś krwi. Wystarczy dodać w while jakąś zmienną, która jest dekrementowana przy każdym obiegu pętli i jeśli zmienna osiągnie wartość 0 to przerwać oczekiwanie.

    Co do wyświetlacza to spróbuj zwiększyć delay od włączenia zasilania do rozpoczęcia inicjalizacji i wstaw dobrane eksperymentalnie delaye pomiędzy kolejnymi komendami inicjalizacji (choć w dokumentacji nic o tym nie piszą).
  • REKLAMA
  • #3 14591613
    Wojtek75
    Poziom 24  
    Spróbuj sprawdzić funkcje o których pisałem w tym temacie: Link
  • #4 14594141
    Mateusz_Łukasik
    Poziom 10  
    ja używam takiego LCD i tych bibliotek (troszkę zmodyfikowanych ale funkcji inicjalizacji nie zmieniałem, dorobiłem tylko swoje funkcje) i u mnie działa wszystko, delay'e mam takie same, ale patrzyłem w datasheet tego LCD i podają tam max. czas wykonania funkcji LCD Clear = 6,2ms, być może Twój egzemplarz potrzebuje dłuższych czasów, spróbuj to zmienić, zrób też to co podpowiada kolega Drako, daj mu w pierwszym delay np. 20ms zamiast 15ms, w funkcji inicjalizacji.

    Natomiast... tak na przyszłość, gdybyś kiedyś używał tego LCD w trybie bez odczytu flagi BUSSY to ja musiałem wydłużyć czas delay'a w funkcji "_LCD_Write" z 50µs do 150-160µs żeby LCD działał poprawnie
REKLAMA