Witam
Bawie się sprzętowym SPI i napotkałem mały problem z którym męczę się już drugi dzień. Mianowicie założenie jest takie, ATmega8 pracująca jako master ma przesyłać jeden bajt do ATmegi32 pracującej jako SLAVE i ten bajt ląduje na wyświetlaczu LCD. Schematu nie ma co pokazywać bo to kwestia połączenia ze spobą 3 lini i wyświetlacza do A32. Wszystko zrobiłem zgodnie z dokumentacją i książką
Mirka ale efekt jest taki że na wyświetlaczu co chwile wyświetlają się jakieś losowe liczby z zakresu 0 do 255, zamiast jednej konkretnej, tej którą przesłałem.
Kod dla MASTER:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Kod dla SLAVE
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
A tak wogóle to nie bardzo rozumiem kiedy SLAVE wie że rozpoczęła się transmisja, z dokumentacji wywnioskowałem że na podstawie zegara, kiedy zacznie się jego nadawanie , pojawi się narastające zbocze to zlicza impulsy i shifter przesuwa bity. Tylko że w tym przypadku, jak ta funkcja pracuje ciągle w pętli głównej programu to jak to się ma do chwili w której MASTER rozpocznie nadawanie. No nie ogarniam tego narazie.
I jeszcze taka ciekawostka z serii z Archiwum X czyli bliżej niewyjaśnionego działania kontrolera mianowicie w tym warunku:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Nie zaświeca się dioda podczas przyciśnięcia klawisza 7 na porcie D.
A po zakomentowaniu obu lini z SPI_send wszystko działa. Czary mary normalnie.
