/**************************实现函数******************************************** *函数原型: void HMC58X3_mgetValues(float *arry) *功 能: 读取 校正后的 磁力计ADC值 输入参数: 输出数组指针 输出参数: 无 *******************************************************************************/ void HMC58X3_mgetValues(float *arry) { int16_t xr,yr,zr; HMC58X3_getRaw(&xr, &yr, &zr); arry[0]= HMC5883_lastx=(float)(xr); arry[1]= HMC5883_lasty=(float)(yr); arry[2]= HMC5883_lastz=(float)(zr); }
/**************************实现函数******************************************** *函数原型: void HMC58X3_FIFO_init(void) *功 能: 连续读取100次数据,以初始化FIFO数组 输入参数: 无 输出参数: 无 *******************************************************************************/ void HMC58X3_FIFO_init(void) { int16_t temp[3]; unsigned char i; for(i=0;i<50;i++){ HMC58X3_getRaw(&temp[0],&temp[1],&temp[2]); delay_us(200); //延时再读取数据 } }
void HMC58X3_mgetValues(float *arry) { int16_t xr,yr,zr; HMC58X3_getRaw(&xr, &yr, &zr); arry[0]= HMC5883_lastx=(float)(((float)(xr - Hmc5883l_X_Offset)) * HMC5883_Scale_X); arry[1]= HMC5883_lasty=(float)(((float)(yr - Hmc5883l_Y_Offset)) * HMC5883_Scale_Y); arry[2]= HMC5883_lastz=(float)(((float)(zr - Hmc5883l_Z_Offset)) * HMC5883_Scale_Z); }