Od kilku nocy, po raz kolejny, próbuję ogarnąć SPI slave. O ile master mam ogarnięte dzięki Mirkowi i jego poradnikom, to slave mnie powalił. Nie mogę nigdzie znaleźć konkretnego poradnika i możliwe, że mylę się co do pracy tego trybu.
Moje założenia:
1. Slave otrzymuje sygnał CLK, co 8 tyknięć jest generowane przerwanie ISR(SPI_STC_vect) lub wychodzimy z pętli while( !SPSR & (1<<SPIF))
2. Po otrzymaniu przerwania lub wyjściu z pułapki przepisujemy SPDR do zmiennej
3. Czekamy na kolejne przepisanie zmiennej.
Pisałem
lub ponieważ próbowałem dwóch metod.
Kod slave - przerwanie
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Kod slave - pułapka programowa:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Połączenia:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Master wysyła co 500ms, diody na shieldzie migają zgodnie z tym, co wysyła master, dioda cały czas świeci. Chciałem, by dioda zmieniała swój stan po każdym wysłaniu z mastera, więc co 1s. Dlaczego żaden kod slave nie działa?