Procesor Atmega32.
Taktowanie fabryczne 1MHz.
Za CS robi mi pin 6 portu D i jest on ustawiany jako wyjście w funkcji SPI_Master_Init().
MirkoT napisał(a):
W funkcji OdbierzSPI powinieneś do zmiennej temperatura przypisać zawartość rejestru SPDR a nie odwrotnie

Racja, mam nadzieję, że tak jest dobrze (zmieniłem to w WymianaDanychSPI(), bo OdbierzSPI() aktualnie nie wykorzystuję

).
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Dodam tylko, że poprawka też nic nie dała.
MirkoT napisał(a):
A tak poza tym... czy ten kod kompiluje Ci się poprawnie? Bez błędów i ostrzeżeń?
Oj... chyba nie...
Bo widzisz jeżeli funkcja zwraca wartość, to chyba musisz ją do czegoś przypisać, a Ty tego nie robisz.
Hmm.. program, pomimo tego, że funkcja zwraca wartość, która nie zostaje przypisana, kompiluje się i wgrywa poprawnie.
Starałem się wcześniej ją przypisać do zmiennej, ale miałem z tym problemy i cały czas wyskakiwały mi ostrzeżenia.
Zrobiłem małą modyfikację i w funkcji "uint8_t WymianaDanychSPI(uint8_t dane)" zamieniłem uint8_t na void oraz usunąłem return

(mam nadzieję, że jest to poprawny zapis), dzięki czemu funkcja wygląda teraz tak :
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Za dużo to nie dało i dalej jest brak reakcji.
Może problem tkwi nie w sofcie, a sprzęcie

ale zanim będę coś kombinował, chciałbym mieć pewność, że mam program, który "musi" zadziałać.
edit.
Nie zauważyłem zdania:
Cytuj:
Poza tym brakuje skonfigurowanego MISO a to na tej linii odpowie Ci SMB380
MISO domyślnie jest jako wejście, bo z tego co wiem to po załączeniu / resecie uC, wszystkie piny portów I/O są jako wejścia. Chyba, że chodzi o jakąś inną konfigurację.