初级会员
- 积分
- 192
- 金钱
- 192
- 注册时间
- 2016-5-11
- 在线时间
- 16 小时
|
楼主 |
发表于 2016-12-5 20:49:41
|
显示全部楼层
void TIM3_IRQHandler(void) //TIM3ÖD¶Ï
{
float i;
// float angle;//½óêÕμ½μÄêÇ»¡¶è£¬èç1ûêǽǶ裬»1μýøDD»»Ëã
OSIntEnter();
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //¼ì2éTIM3¸üDÂÖD¶Ï·¢éúóë·ñ
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //Çå3yTIMx¸üDÂÖD¶Ï±êÖ¾
if(canflag1==1)
{
Can_Send_Msg(0x321,"01234567",8);
}
if(canflag2==1)
{
Can_Send_Msg(0x322,"01234567",8);
i=sin(angle1*3.14/180.00);
deepth=(int)(longth*(i-sin(sen1*3.14/180.00)));
}
}
OSIntExit();
}
这是我的定时器中断服务函数的程序;就是通过can发送命令,然后can的中断函数得到角度值angle1.运行的过程中此中断函数就会导致程序运行出错,也没有访问越界什么的原因啊!
而且我也跟踪了,通过r6的地址得到hardfault之前的程序是OS_Start函数,真的不知道是什么原因了。大神能给个回复吗 |
|