支持团队。
的
在我的测试环境中,传感器数据是在 while 循环中以轮询模式读取的。
传感器 ODR 设置为 1667Hz。
因此,预计每 1/1667 秒读取一次传感器数据。
但看起来传感器数据每 1/1873 秒读取一次。
(5 分钟内,每个传感器数据被读取 562,000 次。)
它比我预期的要快得多。
你能检查一下我是被误解了还是做错了什么?
下面是 read 函数,它在 while 循环中被调用。
- static void motion_data_read(uint8_t index)
- {
- axis3bit16_t data_raw_acceleration;
- axis3bit16_t data_raw_angular_rate;
- do{
- /* Read acceleration field data */
- lsm6dsox_acceleration_raw_get(&lsm_ctx, data_raw_acceleration.u8bit);
- }while(0 == memcmp(&motion_data[0], data_raw_acceleration.u8bit, sizeof(uint8_t)*6));
- do{
- /* Read angular rate field data */
- lsm6dsox_angular_rate_raw_get(&lsm_ctx, data_raw_angular_rate.u8bit);
- }while(0 == memcmp(&motion_data[3], data_raw_angular_rate.u8bit, sizeof(uint8_t)*6));
- motion_data[0] = data_raw_acceleration.i16bit[0];
- motion_data[1] = data_raw_acceleration.i16bit[1];
- motion_data[2] = data_raw_acceleration.i16bit[2];
- motion_data[3] = data_raw_angular_rate.i16bit[0];
- motion_data[4] = data_raw_angular_rate.i16bit[1];
- motion_data[5] = data_raw_angular_rate.i16bit[2];
- }