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

Atmega - Jak napisać funkcję do jednoczesnego nadawania i odbioru SPI?

kazzik87 14 Kwi 2013 16:00 1941 4
REKLAMA
  • #1 12197789
    kazzik87
    Poziom 12  
    Witam,

    Zapoznałem się z wpisami:
    - Link1
    - Link2

    Szukałem pomocy także na innych stornach.

    Problem polega na tym że mam dwie funkcje do obsługi programowo SPI.
    Do nadawania i odbioru bajtu. Obie działają poprawnie.
    Próbuję napisać trzecią do jednoczesnego nadania i odbioru. I tu właśnie tkwi problem.
    Po zastosowaniu okazuje się że jako zwrot po nadaniu dostaję bajt który był wysłany wcześniej?!

    Proszę o nakierowanie na dobrą drogę.

    Funkcje poniżej.

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


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


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


    Nadanie/odbiór:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Dodam że układ to dwie Atmegi644PA.
    Jedna Master mam mieć obsługę programową natomiast druga Slave ma włączone SPI sprzętowe.

    Kod Slave:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 12198041
    stanleysts
    Poziom 27  
    No jeśli odbiornik przepuszcza dane odebrane bez modyfikacji to chyba takie działanie jest poprawne?
  • REKLAMA
  • #3 12198204
    kazzik87
    Poziom 12  
    Ustawiłem w Slave aby wstawił do SPDR wartość 0x80.
    I pierwsza próba odebrania zwraca wynik 0x80. Natomiast następnej już nie.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #4 12198354
    stanleysts
    Poziom 27  
    Nie zauważyłem kodu slave'a...
  • #5 12455142
    kazzik87
    Poziom 12  
    Dziękuje za pomoc. Problem rozwiązany.
REKLAMA