大家好,因为刚用Ti的 tms320f28035的芯片,在ram仿真遇到问题,特此请教,感谢
我在设置断点处观察pwm的寄存器配置,发现TBCTR为一个很大的值,大于周期值30000,这让我很疑惑,是什么原因呢,没有其他中断占用,下图截图可以看到,在断电之前我明明清零了TBCTR的值,理论上到断点也就几个时钟周期吧,为什么会显示65510,显示的波形也不对,另外我pwm配置成 断点时停止计数的模式,希望知道的人能给与帮助,感之不尽
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.
大家好,因为刚用Ti的 tms320f28035的芯片,在ram仿真遇到问题,特此请教,感谢
我在设置断点处观察pwm的寄存器配置,发现TBCTR为一个很大的值,大于周期值30000,这让我很疑惑,是什么原因呢,没有其他中断占用,下图截图可以看到,在断电之前我明明清零了TBCTR的值,理论上到断点也就几个时钟周期吧,为什么会显示65510,显示的波形也不对,另外我pwm配置成 断点时停止计数的模式,希望知道的人能给与帮助,感之不尽
摸索了半天找到点眉目,
pwm计数方式我是配置成up-down,现在分析出问题的原因如下,
在TBCTR清零之前 其值为3123左右,远小于周期值30000,但在强行赋值清零,导致其计数方向改成了 0 ,通过TBSTS可以看出,是向下计数,而且CTRMAX 此位为1,此位代表“”“Reading a 1 on this bit indicates that the time-base counter reached the max value 0xFFFF”,所以TBCTR应该是在赋值为0之后,变成了65535以down的方式计数
我不知道这属于我违规操作,还是这个pwm的机制刚好与我的操作相悖,实际上,在强行清零时候,直接赋值TBCTR = 1;就可以了,不会出现那种错误。
----------------------------