|
|
我现在做了一个汽车转向灯 用6050 感觉转向时不灵敏。必须猛打方向才有信号。请大师帮助 重谢
void Gesture_Update(void)
{
static uint8_t no_new_direction_tick =0;
AccGyroStructure.acc_x =GetData(ACCEL_XOUT_H) +4096; //显示X轴加速度
AccGyroStructure.acc_y =GetData(ACCEL_YOUT_H) +4096; //显示Y轴加速度
AccGyroStructure.acc_z =GetData(ACCEL_ZOUT_H) +4096; //显示Z轴加速度
AccGyroStructure.gyr_x =GetData(GYRO_XOUT_H) +4096; //显示X轴角速度
AccGyroStructure.gyr_y =GetData(GYRO_YOUT_H) +4096; //显示Y轴角速度
AccGyroStructure.gyr_z =GetData(GYRO_ZOUT_H) +4096; //显示Z轴角速度
Uart_Send_String("\r\n ");
if(AccGyroStructure.gyr_z >=0)
sprintf(strBuffer," %.5d ",AccGyroStructure.gyr_z);
else
sprintf(strBuffer,"%.5d ",AccGyroStructure.gyr_z);
Uart_Send_String(strBuffer);
//Accelarate_Gyro_XYZ_Filter(); //水平放置时gyro的offset约为 -56
if(AccGyroStructure.gyr_z > SENSOR_OFFSET_MAX +AccGyroStructure.gyr_z_offset) // 左转时数据变大
{
no_new_direction_tick =0;
//if(SYSTEM_MODE_STABLE ==SystemStruture.curMode )
{
SystemStruture.curMode =SYSTEM_MODE_TURN;
SystemStruture.curOption =SYSTEM_TURN_RIGHT;
}
}
else if(AccGyroStructure.gyr_z < AccGyroStructure.gyr_z_offset -SENSOR_OFFSET_MIN) // 右转时数据变小
{
no_new_direction_tick =0;
//if(SYSTEM_MODE_STABLE ==SystemStruture.curMode )
{
SystemStruture.curMode =SYSTEM_MODE_TURN;
SystemStruture.curOption =SYSTEM_TURN_LEFT;
}
}
else
{
no_new_direction_tick ++;
if(no_new_direction_tick >0)
{
no_new_direction_tick =0;
SystemStruture.curMode =SYSTEM_MODE_STABLE;
SystemStruture.curOption =SYSTEM_NONE_OPTION;
}
}
// if(AccGyroStructure.gyr_x >=0)
// sprintf(strBuffer," %.5d ",AccGyroStructure.gyr_x);
// else
// sprintf(strBuffer,"%.5d ",AccGyroStructure.gyr_x);
// Uart_Send_String(strBuffer);
// if(AccGyroStructure.gyr_y >=0)
// sprintf(strBuffer," %.5d ",AccGyroStructure.gyr_y);
// else
// sprintf(strBuffer,"%.5d ",AccGyroStructure.gyr_y);
// Uart_Send_String(strBuffer);
if(AccGyroStructure.gyr_z >=0)
sprintf(strBuffer," %.5d ",AccGyroStructure.gyr_z);
else
sprintf(strBuffer,"%.5d ",AccGyroStructure.gyr_z);
Uart_Send_String(strBuffer);
if(AccGyroStructure.gyr_z_offset >=0)
sprintf(strBuffer," %.5d ",AccGyroStructure.gyr_z_offset);
else
sprintf(strBuffer,"%.5d ",AccGyroStructure.gyr_z_offset);
Uart_Send_String(strBuffer); |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|