Кто-то работал с акселерометром LIS331HH? Помогите, пожалуйста, разобраться с форматом данных по осям. Подключил это чудо по I2C. Работает. Когда переворачиваю, данные меняются. Но вот что мне непонятно: выход у него 16-ти разрядный, т.е. от 0 до 65535. Но данные находятся либо в начале этого диапазона (100 - 700) или в конце (около 65300). Причем, считываю данные первый раз, к примеру, 700, следующий - 65000. Как правильно обработать данные с этого акселерометра?
LIS331HH: в каком виде данные?
Привет всем котам,
Кто-то работал с акселерометром LIS331HH? Помогите, пожалуйста, разобраться с форматом данных по осям. Подключил это чудо по I2C. Работает. Когда переворачиваю, данные меняются. Но вот что мне непонятно: выход у него 16-ти разрядный, т.е. от 0 до 65535. Но данные находятся либо в начале этого диапазона (100 - 700) или в конце (около 65300). Причем, считываю данные первый раз, к примеру, 700, следующий - 65000. Как правильно обработать данные с этого акселерометра?
Кто-то работал с акселерометром LIS331HH? Помогите, пожалуйста, разобраться с форматом данных по осям. Подключил это чудо по I2C. Работает. Когда переворачиваю, данные меняются. Но вот что мне непонятно: выход у него 16-ти разрядный, т.е. от 0 до 65535. Но данные находятся либо в начале этого диапазона (100 - 700) или в конце (около 65300). Причем, считываю данные первый раз, к примеру, 700, следующий - 65000. Как правильно обработать данные с этого акселерометра?
- Реклама
Не 0...65535, а -32768...+32767. Используйте переменную со знаком. 65000 без знака соответствует -536
Спасибо, разобрался. Мне в принципе не на контроллере , а на компе надо было в матлабе строить графики. Переводил неправильно. Зато вспомнил перевод отрицательных чисел.
- Сообщения: 2
- Зарегистрирован: Вт мар 11, 2014 21:26:09
Друзья! А я не могу разобраться с переводом помогите пожалуйста! Если 7 бит=1 в старшем байте (отрицательное число) то от ffff отнимаю принятое число и +1. А если положительное число что делать? У меня по X в одном положении FF00 в другом 1400.
А ничего не делать. Приведенный алгоритм - это получение абсолютного значения отрицательного числа. А абсолютное значение положительного числа - это оно само и есть. Так что в приведенном примере Abs (-256) = 256, Abs (5120) = 5120
И если речь об 2-байтовом числе, то надо уточнять: знаковым является 15-й бит этого числа или то же самое 7-й бит старшего байта.
И если речь об 2-байтовом числе, то надо уточнять: знаковым является 15-й бит этого числа или то же самое 7-й бит старшего байта.
- Реклама
- Сообщения: 2
- Зарегистрирован: Вт мар 11, 2014 21:26:09
Спасибо, разобрался. Теперь еще одна маленькая проблема: лежит себе на столе (плата) считываешь один раз(x) -256 потом проскакивает -512. А по Y 0 или 256. Шкала +/- 6g. Это помехи?


