大家好,我用两路 IIC 分别测出角加速度和陀螺仪的数据,每10ms进入一次中断,中断中对数据经行处理,并通过usart发送数据。但是程序总是跑飞,原因可能是什么。下面是我中断的代码。
void
tiM2_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
{
TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
GetAngle();
}
}
void GetAngle(void)
{
LX_Val.Angle+=(LX_Val.Acc)*dt;
Angle_delta=(MZ_Val.Angle-Real_angle)*Tg;
Real_angle+=(LX_Val.Acc+Angle_delta)*dt;
#if 1
SendDate('1',LX_Val.Angle,100) ;
SendDate('2',MZ_Val.Angle,100) ;
SendDate('3',Real_angle,100) ;
#endif
}
我程序跑飞的情况就是,陀螺仪一直读数一直不变,卡死了,不能正常工作,我的变量基本都是全局变量,因为变量大部分都是公用的,我想问下,有人说变量少使用全局变量,封装性好一点,嵌入式的需要考虑这个问题吗
一周热门 更多>