Тел. (495) 972-27-12

Гироскоп для TX/TXT

Обсуждаем модели и конструкции, построенные своими руками

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus » 25 фев 2018, 11:46

Привет!

Судя по документации, датчик BNO055 для каждой оси выдает 16-разрядные данные (16 разрядов - это два байта - двухбайтовое машинное слово данных) через два 8-разрядных регистра. Регистр, в названии которого есть аббревиатура LSB (Least Significant Byte) - это регистр с младшим байтом двухбайтового слова данных. Соответственно в регистре с аббревиатурой MSB (Most Significant Byte) хранится старший байт слова данных.

Данные по шине I2C передаются порциями по 1 байт (8 бит). Чтобы собрать двухбайтовое слово данных из однобайтовых порций, получаемых через I2C, надо байт с MSB умножить на 256 и затем прибавить к результату байт LSB. В итоге у нас получится двухбайтовое машинное слово с исходными данными. Блок-схема алгоритма на картинке ниже:
8-bit-to-16-bit.png


Умножение на 256 можно заменить операцией байтового сдвига влево на 8 бит. Обычно процессор выполняет сдвиг быстрее умножения.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 836
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Гироскоп для TX/TXT

Сообщение vladmed » 25 фев 2018, 12:01

Большое спасибо!
Еще уточнить можно, в блоке чтения размер данных должен быть 8 бит?
Вложения
3.PNG
vladmed
 
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus » 25 фев 2018, 12:21

Кстати, да. В этом блоке можно указать размер слова данных, которое собирается из полученных через I2C байтов - 1 или 2 байта. Таким образом отпадает необходимость выполнять преобразование, которое мы обсуждали выше. К сожалению, сейчас нет под рукой TX чтобы проверить.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 836
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Гироскоп для TX/TXT

Сообщение vladmed » 25 фев 2018, 12:37

Спасибо!
Получилось считать Heading обоими способами, только в случае без преобразования надо читать сначала 0x1a и выбрать "Сначала младший". Отличный чип, очень точно работает.
А вот другие углы пока что-то странное показывают, чаще знаки вопросов...
vladmed
 
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение vladmed » 25 фев 2018, 19:12

Все заработало. получаем все углы как надо, спасибо за вашу помощь!
Последний вопрос, если из регистра 0x35 надо считать только два старших бита (7 и 6), такое выражение правильно?
Вложения
5.PNG
vladmed
 
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus » 25 фев 2018, 22:24

Такой подход использовать можно. Деление на 2**N - это сдвиг вправо на N разрядов.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 836
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Пред.

Вернуться в Конструкторы FISCHERTECHNIK



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

cron