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

OLED 0,96" ssd1306 - inicializacja, brak reakcji

joker1309 06 Maj 2016 01:36 1653 7
REKLAMA
  • #1 15653433
    joker1309
    Poziom 11  
    Posty: 185
    Ocena: 2
    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 / C++
    Zaloguj się, aby zobaczyć kod


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Kod: C / 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 / C++
    Zaloguj się, aby zobaczyć kod


    Z góry dziękuję za pomoc : D
  • REKLAMA
  • Pomocny post
    #2 15653557
    LightOfWinter
    Poziom 38  
    Posty: 4451
    Pomógł: 369
    Ocena: 935
    Witaj

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


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

    Kod: C / 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.
  • REKLAMA
  • #3 15653587
    joker1309
    Poziom 11  
    Posty: 185
    Ocena: 2
    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
  • REKLAMA
  • #4 15653652
    LightOfWinter
    Poziom 38  
    Posty: 4451
    Pomógł: 369
    Ocena: 935
    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.
  • REKLAMA
  • #5 15653805
    joker1309
    Poziom 11  
    Posty: 185
    Ocena: 2
    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/topic3065637.html#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
  • #6 15654034
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 574
    W trakcie inicjalizacji można wysprzątać wyświetlacz zapisując mu do ram same 0 dopiero wtedy go włączyć będzie pusty ;) .
  • #7 15654330
    Konto nie istnieje
    Konto nie istnieje  
  • #8 15654883
    joker1309
    Poziom 11  
    Posty: 185
    Ocena: 2
    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.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik ma problem z wyświetlaczem OLED SSD1306, który nie reaguje po inicjalizacji. Wskazuje na trudności z kodem, w tym konieczność dodania pliku nagłówkowego oraz zrozumieniem pętli bitowej. Pomimo zastosowania poradnika z YouTube i dokumentacji, wyświetlacz nie pokazuje "śmieci z pamięci". Użytkownik zauważa, że po dodaniu funkcji wyświetlania pojedynczego piksela, ten jest wyświetlany prawidłowo, co sugeruje, że wyświetlacz może nie inicjalizować się poprawnie. Inni uczestnicy dyskusji sugerują, aby przed włączeniem wyświetlacza zapisać do pamięci same zera, co powinno wyczyścić ekran. Pojawia się również pytanie o różnice w dodawaniu bibliotek w zależności od ich lokalizacji w folderze.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA