接前一篇文章:ICM20948 DMP代码详解(11)
上一回开始解析icm20948_sensor_setup函数的第2段代码也即inv_icm20948_init_matrix函数:
/* Setup accel and gyro mounting matrix and associated angle for current board */
inv_icm20948_init_matrix(&icm_device);
讲到了inv_icm20948_init_matrix中最后调用的函数inv_icm20948_set_chip_to_body_axis_quaternion。
void inv_icm20948_init_matrix(struct inv_icm20948 *s)
{
// initialize chip to body
s->s_quat_chip_to_body[0] = (1L<<30);
s->s_quat_chip_to_body[1] = 0;
s->s_quat_chip_to_body[2] = 0;
s->s_quat_chip_to_body[3] = 0;
//initialize mounting matrix
memset(s->mounting