typedef long int32; typedef int int16; int32 llc_dbt_curr_comp = 79; int16 s16LLC_Pr_PwmDeadTime =59; s16LLC_Pr_PwmDeadTime = s16LLC_Pr_PwmDeadTime - llc_dbt_curr_comp;
上述代码执行后,s16LLC_Pr_PwmDeadTime会发生溢出
并且有时候会出现死机现象导致看门口重启,请问这是为什么
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
typedef long int32; typedef int int16; int32 llc_dbt_curr_comp = 79; int16 s16LLC_Pr_PwmDeadTime =59; s16LLC_Pr_PwmDeadTime = s16LLC_Pr_PwmDeadTime - llc_dbt_curr_comp;
上述代码执行后,s16LLC_Pr_PwmDeadTime会发生溢出
并且有时候会出现死机现象导致看门口重启,请问这是为什么
//int32 llc_dbt_curr_comp //int16 s16LLC_Pr_PwmDeadTime LLC_Modul.s16LLC_Pr_PwmDeadTime = (int16)(-(int32)LLC_Modul.u32LLC_PwmPeriod*(int32)LLC_Modul.u32LLC_PwmPeriod*(int32)LLC_Modul.u32LLC_PwmPeriod*0.000000364 +(int32)LLC_Modul.u32LLC_PwmPeriod*(int32)LLC_Modul.u32LLC_PwmPeriod*0.0008 -(int32)LLC_Modul.u32LLC_PwmPeriod*0.599+177); llc_dbt_curr_comp = (-(int32)LLC_Modul.u32LLC_PwmPeriod*(int32)LLC_Modul.u32LLC_PwmPeriod*(int32)LLC_Modul.u32LLC_PwmPeriod*0.00000021 +(int32)LLC_Modul.u32LLC_PwmPeriod*(int32)LLC_Modul.u32LLC_PwmPeriod*0.0005 -(int32)LLC_Modul.u32LLC_PwmPeriod*0.3821+94); llc_dbt_curr_comp = llc_dbt_curr_comp*abs(LlcSamplVal.s16LLC_BatCurr_Raw)/500; LLC_Modul.s16LLC_Pr_PwmDeadTime = LLC_Modul.s16LLC_Pr_PwmDeadTime - llc_dbt_curr_comp; //程序运行到现在都没有任何问题,在ccs中观察值都在预期内 //但是接下来一旦我对s16LLC_Pr_PwmDeadTime进行操作程序就会死机 //例如对s16LLC_Pr_PwmDeadTime进行限幅操作 UpDownLmt(LLC_Modul.s16LLC_Pr_PwmDeadTime,LLC_PWM_DEAD_TIME_900NS,LLC_PWM_DEAD_TIME_340NS); //#define UpDownLmt(Var,Max,Min) (Var) = (Var)>=(Max)?(Max):((Var)<=(Min)?(Min):(Var)) //或者是对s16LLC_Pr_PwmDeadTime赋值赋别的值 LLC_Modul.s16LLC_Pr_PwmDeadTime=Othervalue;我绞尽脑汁也想不明白:(
妖怪的问题,之前也遇到过,按照经验,说几句可能没啥用的,仅供参考,排查
1.你贴的这些所有代码,是放在哪儿,放在中断吗?放在cla里面吗?你有测试过语句执行时间吗?
2.检查cmd文件空间定义是否有重复,或不连续的存在
3.查: //程序运行到现在都没有任何问题,在ccs中观察值都在预期内,加入这句话后面的程序都不要,你编译下,看map文件,看是不是某块flash或ram空间,快接近了最大空间?即所剩不多?
4.增大heap stack空间大小
5.关闭优化等级或增大优化等级,都试试