本帖最后由 huster_tjs 于 2014-3-18 14:09 编辑
下面是我的读取陀螺仪数据的程序
/************************陀螺仪计算Y轴的角速度***************/
float Read_Gry(void)
{
static float angleG;
int read_gyro_y;
float Angle_gyro;
int Gyro_y_offset=0x00;
//角速度量程见配置 本处使用2000 deg/s。scal系数为16.4 LSB
read_gyro_y= GetData(GYRO_YOUT_H)+Gyro_y_offset; //静止时角速度Y轴输出 //Gyro_y_offset计算方法gyro静止时候N多个数据的算术均值
Angle_gyro= -(float)read_gyro_y/16.4; //去除零点偏移,计算角速度值,负号为方向处理
angleG+=Angle_gyro*0.05; //角速度积分
return angleG;
}
下面是测得的图像
怎么回事这个样子呢?,,,程序有什么问题没有?
我不知道时间怎么确定,,那个0.05是估计的,可不可以用调试程序测出两次调用函数时的时间间隔?
黄色是加速度计的,蓝色是陀螺仪的。
file:///C:/Users/Administrator/Desktop/360桌面截图20140318133554.png |