Witam.
Mam sobie transmisje SPI z urzadzeniem Slave (sam jestem Masterem). Procek to Atmega88 @ 3.3V @ 6MHz.
Program wysyła duzo bajtów w ta i nazad, ale zawsze wygląda to tak:
SPDR = 0x??;
while(!(SPSR & (1<<SPIF)));
Powyzsze linijki wywoluja się w przerwaniu zegara. Główny program nie korzysta z SPI.
Niestety okazyjnie program zwisa. Ale nie podczas pracy, tylko startu. Po prostu co ktoryś start procesora program przestaje funkcjonować zatrzymujać sie na takim while(...) ; w nieskończoność. Wiem, ze do tego miejsca dochodzi bo widzę efekty działania programu do wystąpienia pierwszego przerwania zegara. I wtedy zonk.
Probowałem uproscić program i problem wystepuje nawet przy wysyłaniu paru bajtow przez SPI. Jak mowie, psuje sie tylko co któryś start procesora. Jak juz przejdzie pierwszy raz to będzie potem miliony razy przechodził bez problemu ladnie pracując.
Teraz pytanie: słyszał ktoś może o jakims bugu w tym procesorze związanym z SPI? Wiem, ze problem jest raczej w moim kodzie, ale wolałbym zeby mi ktoś to jasno stwierdził: u mnie działa.