Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

WINSTAR OLED 2x16 - dziwne zachowanie

__Maciek__ 12 Lis 2017 21:09 297 7
  • #1 12 Lis 2017 21:09
    __Maciek__
    Poziom 19  

    Witam,
    Podłączyłem pod Atmegę wyświetlacz OLED WEH001602AWPP5 ( przerobiony na SPI zgodnie z instrukcją z ej strony :
    http://dokuwiki.ehajo.de/artikel:displays:weh001602_belegung#weh001602
    Kod zgodny ze wzorem ...
    http://dokuwiki.ehajo.de/artikel:displays:weh001602_spi_democode
    Właściwy kod wygląda jak poniżej ( drobne zmiany ) :

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Załączony kod .. produkuje wyjście :
    Od 1 znaku 1 lini .... tak jak adresowanie było by odwrócone ... linie zgadzają się.
    1234567890 - linia 0
    0987654321 - linia 1

    WINSTAR OLED 2x16 - dziwne zachowanie

    Ma ktoś jakiś pomysł skąd to się bierze ? Lub gdzie popełniam błąd ?

    0 7
  • #2 12 Lis 2017 23:22
    michalko12
    Specjalista - Mikrokontrolery

    Wrzuć te dwie linie do while(1)

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Będzie wiadomo czy nie wynika to z inicjalizacji, bo czasy w twoim programie nie zgadzają się z tymi które są w programie na którym się wzorowałeś no i kwarce różne.
    Poza tym kod bardzo nielogiczny, np. żeby wysłać komendę to w atrybucie command funkcji LCD_Send trzeba podać 0, na logikę powinno być chyba odwrotnie.

    0
  • #3 13 Lis 2017 00:15
    simw
    Poziom 13  

    michalko12 napisał:

    Będzie wiadomo czy nie wynika to z inicjalizacji, bo czasy w twoim programie nie zgadzają się z tymi które są w programie na którym się wzorowałeś no i kwarce różne.


    Patrząc do dokumentacji kontrolera to właśnie u Kolegi czasy sa dobre.
    Ma być 6.2 ms, przy czyszczeniu wyświetlacza, a ustawiono na 7 ms. W oryginale jest 500 us.

    A druga sprawa to czemu w tym programie kwarc miałby mieć znaczenie?
    Funkcje wbudowane typu "_delay" przecież powinny sobie z tym poradzić.
    Oczywiście definicja F_CPU powinna wylecieć z pliku main.c i być ustawiona w opcjach kompilatora.

    EDIT.
    Zapomniałem o tym, że kwarc wpływa na szybkości zmian na pinach, co może mieć wpływ na poprawność przebiegów programowego SPI.

    EDIT2
    No cóż u mnie działa tak jak w kodzie.
    Mam akurat dokładnie taki wyświetlacz jak na tej niemieckiej stronie.
    Skopiowałem kod z forum, bez żadnych zmian, oprócz wywalenie definicji CPU. Skompilowałem na Atmega32 i działa poprawnie, niezależnie jaki kwarc tam wsadze, 11 czy 16 MHz, nawet bez rekompilacji.

    WINSTAR OLED 2x16 - dziwne zachowanie

    0
  • #4 13 Lis 2017 06:55
    __Maciek__
    Poziom 19  

    Dzięki @simw .
    Jeszcze przed wyjściem popatrzyłem na hardware .. przeoczyłem jedną zworkę ( JFG i JHG ) mam zamienione ...
    W sumie dziwny tryb... rejestr 0 zaczyna się od prawej i pierwsze znaki są niewidoczne ... znaki dodaje w lewo.
    Jak wrócę ( trochę to zajmie ) to przełożę zworkę, sprawdzę i napisze co i jak.

    0
  • #5 13 Lis 2017 09:01
    simw
    Poziom 13  

    __Maciek__ napisał:
    Dzięki @simw .
    W sumie dziwny tryb... rejestr 0 zaczyna się od prawej i pierwsze znaki są niewidoczne ... znaki dodaje w lewo.


    Osobiście oceniam takie dodatki pozytywnie. To sa fajne kontrolery, o wielu opcjach.
    Jedną z ciekawszych jest tryb graficzny, który mocno przebija funkcje standardowego kontrolera HD44780

    0
  • #6 18 Lis 2017 17:58
    __Maciek__
    Poziom 19  

    Niestety .. po zmianie zworki ( uzupełnieniu ) nadal to samo ..

    Code:
       LCD_Write(0,"1234567890abcdefghij");
    
       LCD_Write(1,"ABCDEFGHIJKLMNOPQRST");


    daje wynik :
    WINSTAR OLED 2x16 - dziwne zachowanieWINSTAR OLED 2x16 - dziwne zachowanie

    0
  • Pomocny post
    #7 18 Lis 2017 19:46
    simw
    Poziom 13  

    __Maciek__ napisał:
    Niestety .. po zmianie zworki ( uzupełnieniu ) nadal to samo ..

    No teraz na zdjęciu masz odwrotnie niż u mnie.
    Patrząc na Twoje zdjęcie to są dokładnie te same wyświetlacze, rewizja G.
    Ja u siebie mam zwory na JFG, JCS, reszta po lewej jest taka sama, ale widzę, że masz na odwrót wybrany standard.
    Ty masz ustawione na J80, dwie zwory, co odpowiada standardowi i8080.
    Ja natomiast mam ustawione na J68, co odpowiada Motoroli 6800.

    Innych różnic nie widzę, to musi być to :)

    0
  • #8 19 Lis 2017 13:36
    __Maciek__
    Poziom 19  

    Dzięki ... faktycznie zmiana ustawień wg. twoich wskazówek zaowocowała sukcesem ( J80 zmiana na J68 ) . Dzięki.

    Myślałem jeszcze o jednej kwestii .. ( sprzedawcy na Ale.... pokazują aby podłączyć E, R/W, RS do GND ... ale chyba nie ma takiej potrzeby ..

    Szkoda że ta dokumentacja od Winstar nie jest lepszej jakości.

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo