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

ATmega64 + MAX7219 [C] SPI programowe sprawdzenie kodu

Sławek-K 02 Cze 2016 21:51 1017 7
REKLAMA
  • #1 15716875
    Sławek-K
    Poziom 15  
    Witam !
    Siedzę już któryś tydzień nad kodem i nie mogę znaleźć błędu. Mam Atmegę 64 i popularne na All..... płytki z MAX7219 i matrycą 1088AS z 8x8 czerwonych diod LED fi3mm.
    Przeszukałem sporo stron itd , ale zdecydowana większość była z SPI sprzętowym -> odpada.
    Proszę o sprawdzenie i pokazanie błędu. (Jeśli można prosić to w miarę jasne wytłumaczenie).
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 15717496
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 15717570
    kazink
    Poziom 14  
    atom1477 nie do końca ma rację. Impuls SCK masz 1, ale ponieważ w pętli ustawiasz go najpierw na 0 (czyli stan spoczynkowy), a potem na 1, to w konsekwencji SCK jest przesunięty o 0,5 cyklu w stosunku do danych.
  • #4 15717587
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #5 15717610
    kazink
    Poziom 14  
    Faktycznie, masz rację. Źle cię zrozumiałem.
  • REKLAMA
  • #6 15717802
    Sławek-K
    Poziom 15  
    WIELKIE dzięki za zainteresowanie !
    Jeśli dobrze zrozumiałem Wasze sugestie to procedura wysyłania powinna wyglądać jak poniżej (pin wysyłania danych MISO ma się zmieniać w czasie gdy CLK jest w stanie niskim).
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #7 15717882
    kazink
    Poziom 14  
    Tak, teraz SCK jest dobrze przełączany, ale jeszcze jedna rzecz: na początku funkcji ustawiasz CS na 0, a potem SCK na 0. Jeśli gdzieś przed pierwszym wywołaniem tej funkcji będziesz miał kod, który ustawi SCK na 1 (nawet przy CS = 1), to układ MAX zobaczy zbocze opadające zegara jako pierwsze i nie wiadomo jak na to zareaguje. Stany początkowe linii najlepiej zawsze ustawiać przy CS=1.
  • #8 15724678
    Sławek-K
    Poziom 15  
    Trochę czasu mi zajęło dalsze tworzenie kodu i finalnie wyszło coś takiego. Mam nadzieję , że oprócz mnie przyda się także innym którzy (podobnie jak ja) próbują skomunikować się po SPI programowym z MAX7219 i matrycą LED 8x8.
    kolegom Powyżej serdecznie dziękuję i wysyłam "pomógł".
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA