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

OLED 0,96" ssd1306 - inicializacja, brak reakcji

06 Maj 2016 01:36 1134 7
  • Poziom 11  
    Witam,
    mam problem z wyświetlaczem OLED ssd1306 dokładnie takim:
    http://botland.com.pl/wyswietlacze-oled/4437-...ficzny-096-128x64px-spii2c-proste-zlacza.html

    jego nota katalogowa(z strony podanej w ogłoszeniu:

    http://www.waveshare.com/w/upload/9/95/SSD1306.pdf

    korzystałem z poradnika znalezionego na YT, jednak dotyczy on innych wyświetlaczy https://www.youtube.com/watch?v=QpWUkBjwNlc
    jednak w 30 min powinny pojawić się "śmieci z pamięci" i tutaj problem - na moim nic się nie pokazuje. W oparciu o notę katalogową i w/w poradnik mam takie coś (dwóch miejsc nie rozumiem, zaznaczyłem je komentarzami):


    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod: c
    Zaloguj się, aby zobaczyć kod


    wszystko starałem się skopiować z noty katalogowej a na wyświetlaczu 0 oznak życia, nie wiem co oznacza w niej taki zapis:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Z góry dziękuję za pomoc : D
  • Pomocny post
    Poziom 29  
    Witaj

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Dołącza plik nagłówkowy do sterowania wyjściami/ wejściami dla mikrokontrolera AVR.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Pętla działa dopóki i jest prawdą, czyli jest różne od zera.
    i>>=1 wykonuje przesunięcie bitowe.
  • Poziom 11  
    Wiem co to include, tylko zastanawiam się dlaczego musi być w pliku .h (w poradniku go nie ma) - jak go usunę wyrzuca błąd o uint8_t
    Dziękuję za wyjaśnienie pętli nie skapnolem się że samo i oznacza i=/=0 : )
    Jednak nadal wyświetlacz bez reakcji
  • Poziom 29  
    Witam

    joker1309 napisał:
    Wiem co to include, tylko zastanawiam się dlaczego musi być w pliku .h (w poradniku go nie ma) - jak go usunę wyrzuca błąd o uint8_t


    Napisz dokładnie jaki kod błędu wyrzuca?

    Sądzę że ta biblioteka załącza inną w której są zdefiniowane typy, między innymi uint8_t. W takim wypadku wystarczyło by załączyć tylko tą z definicją typów.
  • Poziom 11  
    Pewnie tak, w poradniku nie dodał że trzeba to dodać (błąd wyrzuca po dodaniu lini :

    void ssd1306_init (uint8_t vcc, uint8_t refresh);
    void ssd1306_cmd(uint8_t cmd);
    void ssd1306_data(uint8_t dat);

    jednak nadal wyświetlacz milczy, robię wszystko jak w nocie katalogowej i nic, ktoś miał coś wspólnego z dokładnie tym wyświetlaczem? : )

    Dodano po 28 [minuty]:

    Hmm ciekawe zjawisko, posłużyłem się tym tematem:

    https://www.elektroda.pl/rtvforum/viewtopic.php?p=14870764#14870764

    skopiowałem kod, ustawiłem RST i CS na 1 i swoje piny i też nie pokazywał śmieci, jednak po dodaniu funkcji wyświetlenia pixela został on wyświetlony prawidłowo, czy to znaczy że jest możliwość aby po samej inicjalizacji nie pokazywał wyświetlacz śmieci? czy nadal coś nie gra i przez przypdek działa wyświetlanie pojedynńeczego pixela ( w różnych miejscach) ?

    Dodano po 5 [minuty]:

    Zauważyłem kolejną ciekawą rzecz, jeżeli biblioteki są w folderze to wywala błąd :
    unknown type name 'uint8_t' ssd1306.h /12_OLED/OLED
    jeżeli nie są w folderze tylko "luzem" to takiego błędu nie ma, może ktoś to wytłumaczyć ? : ) Z góry dziękuje ! : D
  • Poziom 35  
    W trakcie inicjalizacji można wysprzątać wyświetlacz zapisując mu do ram same 0 dopiero wtedy go włączyć będzie pusty ;) .
  • Użytkownik usunął konto  
  • Poziom 11  
    Dziękuję : ) jedyne czego jeszcze nie rozumiem to dlaczego jak biblioteka jest w folderze to muszę dodać include w pliku .h a jak miałem je luzem to nie musiałem.