Hej wszystkim,
Chciałbym wyciągać dane z żyroskopu po SPI z wykorzystaniem bufora FIFO. Komunikacja z żyroskopem jest, odczytuje poszczególne osie i poprawną wartość ID żyroskopu. Przy odczytywaniu danych bez używania bufora otrzymuje co pewien moment wartości z poza zakresu zmiennej. Po niżej zobrazowanie problemu. Ponadto kiedy żyroskop jest w bezruchu, też otrzymuje zmiany wartości poszczególnych osi. Umieszczam poniżej całą konfiguracje układu i program. Może znajdziecie babola który popełniam.
Konfiguracja SPI:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Inicjalizacja żyroskopu:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Odczytanie pojedynczej osi:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Funkcje realizujące wysyłanie i odbieranie danych po SPI:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
I tak nadmienię, bo pewnie padnie pytanie, tak mam włączone taktowania poszczególnych portów, SPI i nie korzystam z gotowego modułu, tylko mam układ zmontowany zgodnie z dtr-ką na robocie
Odczytywanie danych z żyroskopu na chwile obecną realizuje w głównej pętli programu.
Po dodaniu konfiguracji bufora FIFIO dane zmieniają się o parę jednostek, lecz jakby zamarły w miejscu. Jestem pewien, ze coś pomijam w konfiguracji. Po niżej zobrazowanie problemu.
Jeżeli potrzeba jeszcze jakiś informacji to piszcie. Dzięki z góry za pomoc.