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

ATmega 328p-PU - Arduino Uno + wyświetlacz S1D15705 Jak uruchomić?

redblade 18 Wrz 2013 23:07 2808 16
  • #1 18 Wrz 2013 23:07
    redblade
    Poziom 6  

    Witam mam problem z uruchomieniem wyświetlacza S1D15705 za pomocą Adruino. Podłączyłem zestaw, wysyłam do niego komendy i brak reakcji. Przykładowa komenda zapalająca wszystkie piksele.

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Próbowałem zamiast 1 i 0 wpisywać HIGH i LOW, ale brak efektów.

    0 16
  • #2 19 Wrz 2013 08:05
    mickpr
    Poziom 39  

    Ustawiłeś parę bitów na porcie i co chciałeś (więcej) tym kodem uzyskać?
    Nie wiem czy Arduino ma gotowe biblioteki do obsługi tego wyświetlacza - ale zawsze możesz stworzyć swoje w oparciu o Datasheet.]Link[/url]

    0
  • #3 19 Wrz 2013 08:23
    redblade
    Poziom 6  

    Chciałem zaświecić wszystkimi pikselami wyświetlacza. Żadna komenda nie działa. Może wyświetlacz powinno się jakoś zainicjować.

    0
  • #5 19 Wrz 2013 18:11
    redblade
    Poziom 6  

    W linku, który podałeś znalazłem biblioteki użytkowników. Mógłbym je jakoś wykorzystać? Jak skonfigurować I/O Arduino z tym wyświetlaczem (mając wcześniej wspomniane biblioteki).

    0
  • #6 19 Wrz 2013 19:34
    mickpr
    Poziom 39  

    redblade napisał:
    W linku, który podałeś znalazłem biblioteki użytkowników. Mógłbym je jakoś wykorzystać? Jak skonfigurować I/O Arduino z tym wyświetlaczem (mając wcześniej wspomniane biblioteki).
    Myślę, że tak. Nigdy nie używałem Arduino (mam płytkę, ale nie mam czasu).
    Widziałem jednak składnie stosowaną w Arduino - jest bardzo zbliżona do "C", więc nie powinieneś mieć problemów z przeniesieniem bibliotek na Arduino.
    Bezpośrednio (o ile mi wiadomo) bibliotek o których wspominasz na Arduino nie da się użyć.
    Poszukaj jeszcze (Google) - być może ktoś napisał już bibliotekę do Arduino.

    Możesz też zrobić kompletnie inaczej:
    Skompiluj sobie kod używając avr-gcc i wgraj go programatorem na płytkę - uważając jednak na to - by nie skasować sobie bootloader'a.
    W ten sposób przeróbka bibliotek nie będzie konieczna - ale kod twojego programu musisz napisać w "C".

    0
  • #7 21 Wrz 2013 21:16
    redblade
    Poziom 6  

    No dobra przeczytałem Datasheet i z tego co zrozumiałem to trzeba najpierw wyświetlacz zainicjować (Rozdział 8.1). Zrobiłem wszystko krok po kroku a następnie zamiast kroków opisanych w 8.2 Wysłałem komendę zapalającą wszystkie piksele. Nie działa. Może kod coś wam powie.

    Kod: cpp-qt
    Zaloguj się, aby zobaczyć kod


    Nie do końca rozumiem o co chodzi z funkcjami
    (17) Voltage adjusting internal resistance ratio set
    (18) Electronic control

    0
  • #8 21 Wrz 2013 21:35
    NdYAG
    Poziom 16  

    Gdzie i kiedy robisz zbocze które zatrzaskuje dane na magistrali danych?

    0
  • #9 21 Wrz 2013 21:53
    redblade
    Poziom 6  

    Jestem początkujący i szczerze powiem że nie mam pojęcia na czym polega i do czego służy zatrzaskiwanie danych na magistrali.

    0
  • #10 21 Wrz 2013 22:27
    mickpr
    Poziom 39  

    redblade napisał:
    Jestem początkujący i szczerze powiem że nie mam pojęcia na czym polega i do czego służy zatrzaskiwanie danych na magistrali.
    Zatrzaskiwanie danych polega (w skrócie) na przepisaniu stanu linii danych do rejestru wewnątrz układu.
    Czyli ustawiasz pewne piny i potem mówisz do układu "gotowe" - zatrzaskując stan wszystkich pinów.
    Zwykle zatrzaśnięcie odbywa się przez zmianę stanu określonej (jednej) linii sygnałowej (1 pin).

    0
  • #11 21 Wrz 2013 23:47
    NdYAG
    Poziom 16  

    redblade napisał:
    Jestem początkujący i szczerze powiem że nie mam pojęcia na czym polega i do czego służy zatrzaskiwanie danych na magistrali.


    Przeczytaj datasheet - i zastanów się skąd i kiedy układ wyświetlacza ma widzieć, że już może wczytać bity które mu pracowicie ustawiłeś? Co powoduje, że komenda zostaje 'pobrana' przez układ wyświetlacza?

    0
  • #12 22 Wrz 2013 00:19
    redblade
    Poziom 6  

    Pewnie chodzi o pin CS1

    Cytat:
    0-kontroler wyświetlacza aktywny, 1 - kontroler wyświetlacza nieaktywny, magistrala danych w stanie wysokiej impedancji


    Podsumowując.
    1. Ustawiam CS1 na 1 aby przesłać dane.
    2. Przesyłam dane.
    3. Ustawiam CS1 na 0 aby włączyć kontroler.
    4. Wyświetlacz interpretuje dane które pobrał.

    Czy to dobry tok rozumowania?

    0
  • #13 22 Wrz 2013 00:26
    NdYAG
    Poziom 16  

    CS to chip select, stan wysoki daj znać że układ nasłuchuje, ale to nei to.

    0
  • #14 22 Wrz 2013 00:38
    redblade
    Poziom 6  

    To już nie wiem który to pin. A może być tak, że wysyłam dane, następnie wysyłam komendę, która "mówi gotowe" i wtedy wyświetlacz analizuje te dane?

    0
  • #15 22 Wrz 2013 01:14
    mickpr
    Poziom 39  

    Gdybyś zajrzał i przestudiował kod w C, do którego link (na elektrodzie) podałem w poście #4 nie zadawał byś takich (bez obrazy) głupich pytań.
    Masz wprost zdefiniowane funkcje do zapisu i odczytu danych i komend, procedurę inicjującą wyświetlacz i przykładowe funkcje graficzne.
    Gdy będziesz się upierał "nie umiem w C - bo piszę tylko w Arduino" (niektórzy dawniej pisali w Bascom) oraz czytał datasheet bez zrozumienia (po łebkach) - to w ten sposób do niczego nie dojdziesz.
    Zacznij od zrobienia "małych klocków" wykonujących pożądane funkcje (wysłanie komendy do wyświetlacza, zapis/odczyt danej z niego).
    Potem z tych komend składasz kolejne (inicjacja wyświetlacza, wyświetlenie punktu).
    Potem z tych składasz kolejne - (wyświetlenie tekstu, narysowanie elipsy)...
    W ten sposób podchodź do każdego problemu - a stanie się on prosty.

    0
  • #16 22 Wrz 2013 10:33
    redblade
    Poziom 6  

    Dzięki za porady, ale lepiej by było gdyby znalazły się tam komentarze. Zacznę więc od zapisywania komendy. Nie wiem czy dobrze to rozumiem więc proszę o weryfikację przez kogoś kto ogarnia lepiej c ode mnie.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Czyli:
    -stosuję odpowiednia kombinację linii sterujących CS,A0,WR,RD
    -podczas takiego stanu linii zapisuje komendę do rejestru przez linie danych D7..D0
    -zmieniam kombinację linii sterujących
    -w tym stanie linii sterujących wyświetlacz mieli to co dostał wcześniej na linie danych.

    0
  • #17 22 Wrz 2013 18:51
    redblade
    Poziom 6  

    Dobra. Udało się zaininicjalizować.
    Do kosza.

    0
  Szukaj w 5mln produktów