Почему значения "fifoBuffer" индексов 2,3,6,7,10,11 не передаются в массив teapotPacket[]?
Я использую библиотеку MPU6050 Джеффа Роуберга. В коде весь fifobuffer не передается в массив teapotPacket (для обработки, т. Е. Для эмуляции графики). Почему в массив 'teapotPacket' передаются только определенные индексы (точнее, передаются только указанные ниже индексы)
teapotPacket[2] = fifoBuffer[0];
teapotPacket[3] = fifoBuffer[1];
teapotPacket[4] = fifoBuffer[4];
teapotPacket[5] = fifoBuffer[5];
teapotPacket[6] = fifoBuffer[8];
teapotPacket[7] = fifoBuffer[9];
teapotPacket[8] = fifoBuffer[12];
teapotPacket[9] = fifoBuffer[13];
и, пожалуйста, проясните еще одну вещь, почему массив 'teapotPacket' инициализируется символами $, hex и символами '\n' & '\r'?
uint8_t teapotPacket[14] = { '$', 0x02, 0,0, 0,0, 0,0, 0,0, 0x00, 0x00, '\r', '\n' };
0 ответов
Дубликат вопроса: почему значения "fifoBuffer" индексов 2,3,6,7,10,11 не передаются в массив teapotPacket[]?
Цитирую мой ответ снова здесь для полноты:
В коде при передаче данных в библиотеку Teapot (для обработки, т. Е. Графической эмуляции) весь fifobuffer не передается. Почему это так?
Углубившись в код библиотеки, я обнаружил, что это просто формат "InvenSense Teapot demo" для отображения значений кватернионов.
Почему массив teapotPacket[14] инициализируется с этими странными шестнадцатеричными числами?
Это формат структуры пакета для чайника InvenSense, используемый для хранения показаний датчика, таких как кватернионные значения.
Немного больше информации о: "кватернионных значениях":
Quaternions - это система счисления, которая расширяет комплексные числа, используемые для вычислений с использованием трехмерных вращений, таких как трехмерная компьютерная графика, компьютерное зрение и анализ кристаллографической текстуры.