加速度校准时遇到这样的问题:
第一次校准后,值差不多正常,再校准一次后,又恢复了。
程序:
void ADXL345_Adjust(char *x,char *y,char *z)
{
short tx,ty,tz;
// ADXL345_WriteReg(OFSX,0);
// ADXL345_WriteReg(OFSY,0);
// ADXL345_WriteReg(OFSZ,0);
ADXL345_Read_Average(&tx,&ty,&tz,10);
*x = -tx / 4;
*y = -ty / 4;
*z = -(tz-256) / 4;
ADXL345_WriteReg(OFSX,*x);
ADXL345_WriteReg(OFSY,*y);
ADXL345_WriteReg(OFSZ,*z);
}
现象:
从下往上,第一条为未校准前的,第二条为校准后的,第三、四为第二次校准的。
原子哥,这是怎么回事呢?
|