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.关闭优化等级或增大优化等级,都试试