我正在调试一块自制的28335电机控制板,出现了一个奇快的现象:仿真器对28335 reset以后,程序load一次后PWM波并没有输出,但是通过wach变量和寄存器内容表明程序确实在运行(变量和寄存器值都是正常变化);在不复位的情况下重新load程序,一切ok,pwm输出正常。请问出现这种现象的原因可能有那些?
CCS版本:3.3和4.1.2 都试过 仔细检查了GPIO寄存器的设置,没有错误
chen honkichen:
另:仿真器型号为xds100_link 和 xds510usb 都试过
我正在调试一块自制的28335电机控制板,出现了一个奇快的现象:仿真器对28335 reset以后,程序load一次后PWM波并没有输出,但是通过wach变量和寄存器内容表明程序确实在运行(变量和寄存器值都是正常变化);在不复位的情况下重新load程序,一切ok,pwm输出正常。请问出现这种现象的原因可能有那些?
CCS版本:3.3和4.1.2 都试过 仔细检查了GPIO寄存器的设置,没有错误
chen honkichen:
程序的初始化是按照例程一步步来的,目前还没有发现问题。现在还是第一次程序load后PWM没有输出,二次load后程序正常了。
另外今天试了一个简单的GPIO Toggle的例程,运行正常,说明硬件没有什么问题。所以还是没有头绪。
我正在调试一块自制的28335电机控制板,出现了一个奇快的现象:仿真器对28335 reset以后,程序load一次后PWM波并没有输出,但是通过wach变量和寄存器内容表明程序确实在运行(变量和寄存器值都是正常变化);在不复位的情况下重新load程序,一切ok,pwm输出正常。请问出现这种现象的原因可能有那些?
CCS版本:3.3和4.1.2 都试过 仔细检查了GPIO寄存器的设置,没有错误
Forrest:
回复 chen honkichen:
把所有变量都在程序中赋初值。比如int i;改成int i=0;,把所有用到的模块的寄存器都一一初始化
估计赋好初值之后的结果应该是,第一次load没输出,第二次也没输出:)
我正在调试一块自制的28335电机控制板,出现了一个奇快的现象:仿真器对28335 reset以后,程序load一次后PWM波并没有输出,但是通过wach变量和寄存器内容表明程序确实在运行(变量和寄存器值都是正常变化);在不复位的情况下重新load程序,一切ok,pwm输出正常。请问出现这种现象的原因可能有那些?
CCS版本:3.3和4.1.2 都试过 仔细检查了GPIO寄存器的设置,没有错误
chen honkichen:
回复 Jones Chen:
确实在EPwm初始化存在问题。程序中原始做法是对EPwm1Regs.TBPRD赋值后接着对EPwm1Regs.TBCTL赋值,结果发现EPwm1Regs.TBPRD寄存器值竟然清零了。现在改成EPwm1Regs.TBCTL赋值放在EPwm1Regs.TBPRD赋值之前,目前看起来程序ok。为什么这样正在分析中。我以前做的2808系统貌似没有这种想象。谢谢 Forrest和Jones Chen的解答。