/**************************实现函数********************************************
*函数原型:	  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);  //延时再读取数据
  }
}
Ejemplo n.º 3
0
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);
}