Przy pomocy płytki EvB 4.3v4 z ATMega644p obsługuję żyroskop L3G4200D po I2C.
Dość często pojawiają się dziwne wartości. Wygląda na to, że prawdziwy wynik zostaje zwiększony lub zmniejszony o magiczne 256.
Odczyty gdy żyroskop w spoczynku:
Gdy poruszam żyroskopem:
W analogiczny sposób odczytywałem akcelerometr LSM303DLH i takie cuda się nie dzieją.
Konfrontowałem swój kod z kilkoma, które udało mi się znaleźć i nie mam już więcej pomysłów.
Init:
Odczyt:
Obsługa I2C:
Proszę o wskazówkę skąd może brać się ten bit +/- 256 ?
Eksperymentowałem trochę ze zmienianiem typów danych i próbowałem różnych konfiguracji w CTRL_REG1-CTRL_REG5 i wciąż to samo.
Dość często pojawiają się dziwne wartości. Wygląda na to, że prawdziwy wynik zostaje zwiększony lub zmniejszony o magiczne 256.
Odczyty gdy żyroskop w spoczynku:
Gdy poruszam żyroskopem:
W analogiczny sposób odczytywałem akcelerometr LSM303DLH i takie cuda się nie dzieją.
Konfrontowałem swój kod z kilkoma, które udało mi się znaleźć i nie mam już więcej pomysłów.
Init:
Kod: C / C++
Odczyt:
Kod: C / C++
Obsługa I2C:
Kod: C / C++
Proszę o wskazówkę skąd może brać się ten bit +/- 256 ?
Eksperymentowałem trochę ze zmienianiem typów danych i próbowałem różnych konfiguracji w CTRL_REG1-CTRL_REG5 i wciąż to samo.