TI中文支持网
TI专业的中文技术问题搜集分享网站

使用C2000调试程序时有些语句不执行

在CCS4编译器里单步调试程序,为什么会出现有些语句不能执行,也不能设置断点的情况?通过观察变量看结果,这些语句根本就没执行,但是编译肯定能通过的。

定义全局变量
long DutyFine;
long Ref ; 
long TempInt;
long TEMP1;
long TEMP3;

主程序里调用函数VoltageAdj()  

Void VoltageAdj(void)

TempInt=_IQ20(0.785);
Ref=_IQ20(0.62);
DutyFine =_IQ20sin(TempInt); 
TempInt=_IQ20mpyIQX(DutyFine,20,Ref,20);           

TEMP1=_IQ16mpyIQX(TempInt,20,1500,0);   
input=TEMP1;
TEMP1=TEMP1>>16;
TEMP3=(1500-TEMP1)>>1;                                                             
TEMP1=TEMP3+TEMP1;                 

DutyFine=_IQ29(3.14159);  
input=TempInt;

红色部分为函数不能执行的语句,硬件仿真时,程序直接从TempInt=_IQ20mpyIQX(DutyFine,20,Ref,20);          这一句跳到了DutyFine=_IQ29(3.14159); 
跨过来了红色部分,导致程序运行不对。其中红色部分也不能设置断点。非红色部分程序能正常运行,结果正确。CCS版本为4.12。

赞(0)
未经允许不得转载:TI中文支持网 » 使用C2000调试程序时有些语句不执行
分享到: 更多 (0)