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

[Atmega8][Bascom]Podłączenie i sterowanie wyśw. sda 5708

toya123 01 Maj 2009 18:14 3019 9
REKLAMA
  • #1 6478853
    toya123
    Poziom 11  
    Witam !

    Mam problem z podłączeniem wyświetlacza SDA5708 do Atmega8. Opis wyświetlacza jest tutaj Link.

    Podpinam DANE i ZEGAR pod MOSI i SCK procesora, a LOAD i RESET pod piny z portu D.
    Ustalam poziomy dla LOAD i RESET a następnie komendą SPIOUT wysyłam dane. Problem polega na tym że to rozwiązanie nie działa.

    Mam pytanie - jak to podłączyć i jak wysterować?

    Poprawiłem tytuł.
    [zumek]
  • REKLAMA
  • #2 6479153
    Menuet
    Poziom 19  
    Witam,
    Może kolega by wrzucił chociaż kawałek kodu jak steruje wyświetlaczem? Bo myśle, że podłączenie jest dobre, ale problem może leżeć w odpowiednim programie...
    Pozdrawiam, Menuet.
  • REKLAMA
  • #3 6479337
    toya123
    Poziom 11  
    Fragment kodu:

    
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Dim A As Byte
    Dim B(10) As Byte
    Config Portc = Output
    Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 64
    
    L_reset Alias Portc.2
    L_load Alias Portc.5
    
    Waitms 50
    
    Enable Spi
    Spiinit
    
    L_reset = 1
    L_reset = 0
    
    
    
    
    L_load = 1
    A = &B11000000 
    Spiout A , 1
    Waitms 2
    L_load = 0
    
    
    L_load = 1
    A = &B10100000
    Spiout A , 1
    L_load = 0
    Waitms 2
    
    L_load = 1
    A = &B00011111
    Spiout A , 1
    L_load = 0
    Waitms 2
  • REKLAMA
  • #4 6479415
    Menuet
    Poziom 19  
    No to tak, według tego co zauważyłem na szybko z Twojego fragmentu i przebiegu umieszczonego na tej stronie co podałeś to, na pewno tak jak masz to wyświetlacz jest cały czas resetowany, bo na pinie z resetem masz zero, czy stan aktywny końcówki z wyświetlacza... Jeżeli wyświetlacz ma działać to reset musi być ustawiony na 1.
    Zauważyłem też, że masz bardzo podobną sytuacje z końcówką Load, jej stanem aktywnym też jest poziom niski, a Ty chcesz wysyłać dane do wyświetlacza przy jej stanie wysokim...
    Trzecią rzeczą którą zauważyłem jest (chyba) zła konfiguracja SPI, bo masz ustawione Polarity = High, a też patrząc na ten wykres stanem bezczynności magistrali jest stan niski, czyli musiałbyś to ustawić na Low.
    Pozdrawiam, Menuet.
  • REKLAMA
  • #5 6480026
    toya123
    Poziom 11  
    Dzięki za podpowiedź, błędy oczywiste ale i tak problem się utrzymuje, na pierwszym polu wyświetla dwupikslową linię ukośną i nic.

    Kod wyglada tak:


    $regfile = "m8def.dat"
    $crystal = 8000000


    L_reset Alias Portc.2
    L_load Alias Portc.5
    Dim A As Byte
    Dim B(10) As Byte
    Config Portc = Output
    Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 1 , Clockrate = 16

    Waitms 50

    Enable Spi
    Spiinit

    L_load = 0
    A = &B11100000 ' 100% jasność
    Spiout A , 1
    L_load = 1


    L_load = 0
    A = &B10100000 ' wybór pola odczytowego
    Spiout A , 1
    L_load = 1

    L_load = 0
    A = &B00011111 ' a tu chciałbym żeby wyświetlił tylko jedną linijkę w pierwszym polu
    Spiout A , 1
    L_load = 1


    End
  • #6 6483433
    Menuet
    Poziom 19  
    Witam,
    Według mnie musiał byś spróbować wysłać całe 7 bajtów z danymi jakie sie mają pokazać na jednej pozycji, może to coś zmieni... Niestety tylko tak przypuszczam, bo nigdy takiego wyświetlacza nie używałem...
    Proponowałbym też nie zakańczanie od razu programu komenda "End" gdyż czasami w Bascomie powoduje ona różne zachowanie się procka...
    Pozdrawiam, Menuet
  • #7 6961186
    Robertdek
    Poziom 12  
    Witam
    Czy udało sie odpalić ten wyświetlacz ,bo też taki mam i nie wiem jak go ugryżć.
  • #8 6974807
    toya123
    Poziom 11  
    No nie udało się bo dałem sobie spokój i nie mam teraz czasu żeby się tym bawić, ale wrócę do tematu i jak się uda to dam znać
  • #10 8160763
    Brzozza93
    Poziom 15  
    Sorka, jeśli odgrzewam stary temat, ale - patrz na kolejność bitów! Na stronie z linku jest napisane że zaczynasz od LSB, phase = 0 (odczyt na rosnącym zboczu zegara)
    Mam nadzieję, że komuś to pomoże, sam zamierzam zrobić zegarek na tym zacnym displeju.
REKLAMA