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

MEGA8A, OLED 2x16, Bascom - Nie moge zainicjować wyświetlacza

januss73 11 Kwi 2013 19:09 3471 7
  • #1 12186563
    januss73
    Poziom 32  
    Witam

    Wyświetlacz oled firmy Bolymin BL1602
    nota wyświetlacza

    Schemat połączeń (wiem, że średnio czytelny). LCD podpięty pod to złącze 16-pin. Piny 115 i 16 nie wykorzystuje, bo to ma być opcja do LCD z podświetlaniem, którego jeszcze nie posiadam. Te 6-pin pod spodem są do ustawienia za pomocą zworek polaryzacji zasilania, bo ten oled ma odwrotnie niż wszystkie inne. Różnica taka, że regulację jasności VBT podpiąłem przez potencjometr, mogę więc ręcznie regulować od 0 do 5V.

    MEGA8A, OLED 2x16, Bascom - Nie moge zainicjować wyświetlacza

    I nie działa. Wszystko wskazuje na to, że wyświetlacz jest kompatybilny z HD44780 (KS0066). Również to, że mam 3 takie wyświetlacze i dawno temu bez problemu wysterowałem jeden z nich za pomocą mega16, tyle, że teraz nie mam już ani tego ukłądu ani kodu. Nie jestem pewien czy wówczas jednego nie uwaliłem, 2 z nich natomiast niedawno nieużywane wyjąłem z szuflady.
    Wyczytałem gdzieś, że może być problem jak dane idą przez piny ISP, więc w tej chwili całość podpięta jest bezpośrednio do nóg procka na PORTC tak jak w kodzie.


    Kod: text
    Zaloguj się, aby zobaczyć kod

    pod PortD.3 podpięta dioda, żebym widział czy program działa. Wyświetlacz ani drgnie.
    Jak ktoś ma jakiś pomysł będę wdzięczny, jak nie chyba musze wyjść z założenia, że wyświetlacze są jednak jakimś cudem nie sprawne. Byłoby szkoda, bo pamiętam, że ładnie świecą, tanie też nie były.
  • #2 12189830
    SylwekK
    Poziom 32  
    Nie wiem jak to u Ciebie wygląda w kompilatorze ale gdy zamieniłem linię konfiguracji na :
    Kod: text
    Zaloguj się, aby zobaczyć kod

    to w symulatorze wszystko działa...
  • #3 12190717
    Snikers
    Poziom 24  
    Dołączę się do tematu bo sam próbuje uruchomić wyświetlacz tego producenta z tym sterownikiem (KS0066).

    z uwag to: dołączasz biblioteke lcd4.LBX (literówka na końcu """ ale to nie ważne)
    w tej bibliotece są na stałe przypisane piny

    Rs = PortB.0

    RW = PortB.1 we dont use the R/W option of the LCD in this version so connect to ground

    E = PortB.2

    E2 = PortB.3 optional for lcd with 2 chips

    Db4 = PortB.4 the data bits must be in a nibble to save code

    Db5 = PortB.5

    Db6 = PortB.6

    Db7 = PortB.7

    Sam próbowałem z różnymi ustawieniami bez tej biblioteki standardowym "Config lcd". Jednak wyświetlacz nie inicjuje się.
  • #4 12190796
    januss73
    Poziom 32  
    No to witaj w klubie.
    Faktycznie nie powinno być tej biblioteki przy tych podłączeniach, ale możesz mi wierzyć, że próbowałem wszystkiego, łącznie z ręczną inicjacją. Teraz próbuje odpalić go z portu drukarki i też ani drgnie.
    Kurde, a pamiętam, że kiedyś ruszył bez problemu, ale nie pamiętam jak to zrobiłem?
  • #5 12190837
    Snikers
    Poziom 24  
    Też próbowałem praktycznie wszystkiego, ręczną inicjacje spróbuje jutro według noty KS0066. Najgorsze jest to, że noty producenta to tylko ta ulotka. Zastanawia mnie też ten pin VBT. Piszą o jednym napięciu = 5V a potem podają VBT = 2V (u mnie). Aha i próbuje go uruchomić w trybie 4-bitowym, przy czym bez różnicy czy pin D0-D3 są do masy czy nie.
  • #6 12191075
    januss73
    Poziom 32  
    A co do VBT to akurat jestem pewny, że go standardowo przez potencjometr trzeba. Reguluje się jasność zamiast kontrastu.

    Co do inicjalizacji na razie spłodziłem coś takiego. Jeszcze z tym popróbuje.


    Kod: text
    Zaloguj się, aby zobaczyć kod



    04.13

    Zaczynam coraz bardziej żałować, że nie zacząłem od jakiegoś innego języka :) ale do rzeczy.
    Porównałem noty KS i HD, wychodzi na to, że inicjalizacja jest dokładnie taka sama za wyjątkiem tego, że KS precyzuje czas kiedy procek jest zajęty, a hd nie. Użyłem więc trybu z buse, oczywiście też bezskutecznie. Tylko jedno pytanko. Czy dobrze rozumuje, że przy użyciu biblioteki lcd4busy w deklaracji
    Const _lcdport = Portb
    Const _lcdddr = Ddrb
    Const _lcdin = Pinb
    Const _lcd_e = 2
    Const _lcd_rw = 1
    Const _lcd_rs = 0

    2, 1 i 0 oznaczają piny na zadeklarowanym porcie B? W helpie jest przykład ale kiepsko opisany.

    Podpiąłem to teraz pod mega32, d4 do d7 odpowiednio pod portb.4 do portb.7, e, rw i rs do binów pod portB tak jak zadeklarowałem. Oczywiście dalej nic. Chyba wyświetlacze zwyczajnie są walnięte.

    $crystal = 1000000
    '$sim
    $lib "lcd4busy.lbx"
    
    Const _lcdport = Portb
    Const _lcdddr = Ddrb
    Const _lcdin = Pinb
    Const _lcd_e = 2
    Const _lcd_rw = 1
    Const _lcd_rs = 0
    
    
    Config Lcd = 16 * 2
    
    
    
    Waitms 100
    
    Do
    Cls
    Lcd "nanana"
    Wait 1
    
    Loop
    
    End   
  • #7 12193303
    januss73
    Poziom 32  
    Zaczynam coraz bardziej żałować, że nie zacząłem od jakiegoś innego języka :) ale do rzeczy.
    Porównałem noty KS i HD, wychodzi na to, że inicjalizacja jest dokładnie taka sama za wyjątkiem tego, że KS precyzuje czas kiedy procek jest zajęty, a hd nie. Użyłem więc trybu z buse, oczywiście też bezskutecznie. Tylko jedno pytanko. Czy dobrze rozumuje, że przy użyciu biblioteki lcd4busy w deklaracji
    Const _lcdport = Portb
    Const _lcdddr = Ddrb
    Const _lcdin = Pinb
    Const _lcd_e = 2
    Const _lcd_rw = 1
    Const _lcd_rs = 0

    2, 1 i 0 oznaczają piny na zadeklarowanym porcie B? W helpie jest przykład ale kiepsko opisany.

    Podpiąłem to teraz pod mega32, d4 do d7 odpowiednio pod portb.4 do portb.7, e, rw i rs do binów pod portB tak jak zadeklarowałem. Oczywiście dalej nic. Chyba wyświetlacze zwyczajnie są walnięte.

    $crystal = 1000000
    '$sim
    $lib "lcd4busy.lbx"
    
    Const _lcdport = Portb
    Const _lcdddr = Ddrb
    Const _lcdin = Pinb
    Const _lcd_e = 2
    Const _lcd_rw = 1
    Const _lcd_rs = 0
    
    
    Config Lcd = 16 * 2
    
    
    
    Waitms 100
    
    Do
    Cls
    Lcd "nanana"
    Wait 1
    
    Loop
    
    End   
  • #8 12208542
    krzycho123
    Poziom 31  
    Oled przynajmniej mój - Winstar działa w BASCOMie bo dorzuceniu w inicjalizacji LCD zapisu o chipsecie kontrolera .

    Cytat:
    Config Lcd = 16 * 2 , Chipset = Ks077
REKLAMA