carver
  • Najlepsze
  • Wszystkie komentarze
linijkana20cm
@carver x to chyba sygnały wejściowe elektroniku ( ͡° ͜ʖ ͡°)
RicoElectrico
@carver: rzucę słowem "inverting summing amplifier"
Visher
Mirko, mam problem z odczytami z akcelerometru, nie mam pojęcia dlaczego mi się wszystko rozjeżdża.

Otóż mam scalaka MPU-9150 z m.in 3-osiowym 16-bitowym akcelerometrem. Wynik pomiaru przyspieszenia zapisywany jest do dwóch rejestrów, w pierwszym są bity 15..8 a w drugim 7..0.

Odczyt za pomocą I2C i wysłanie na UART robię tak:

TWI_read_buf(MPU9150_ADDR,
  • Najlepsze
  • Wszystkie komentarze
pytonger
rejestr 1: ACCELXOUT[15:8]

rejestr 2: ACCELXOUT[7:0]


@Visher: I dokładnie tak to masz interpretować, rej2 jest młodszym bajtem wartości, a rej1 starszym. Cała wartość ma postać ((uint16)rej1)*256 + rej2.

A ty dodajesz jakieś dzikie 128 do młodszego bajtu, czyli przesuwasz go na dzień dobry o połowę w górę. I dokładnie to widać na wykresie (to, co ci nie pasuje - przesunięcie).
Tymian
@Visher: tradycyjna powinno być typu uint8t, po odebraniu jeszcze w procku składasz to przesuwając w lewo msb i zapisując do do int16t . Coś w ten deseń powinno zadziałać. Albo przesylasz oba bajty i na kompie to robisz.