接前一篇文章:ICM20948 DMP代码详解(44)
本回继续解析inv_icm20948_setup_compass_akm函数的余下代码。为了便于理解和回顾,再次贴出源码,在EMD-Core\sources\Invn\Devices\Drivers\ICM20948\Icm20948AuxCompassAkm.c中,如下:
/*
* inv_icm20948_setup_compass_akm() - Configure akm series compass.
*/
int inv_icm20948_setup_compass_akm(struct inv_icm20948 *s)
{
int result;
unsigned char data[4];
#if (MEMS_CHIP != HW_ICM20948)
uint8_t sens, cmd;
#endif
//reset variable to initial values
memset(s->secondary_state.final_matrix, 0, sizeof(s->secondary_state.final_matrix));
memset(s->secondary_state.compass_sens, 0, sizeo