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.

PWM1和PWM2同步

PWM1和PWM2被设置成同步,单步运行时EPwmxRegs.TBCTR里的值也是一样的,但是连续运行时,发现watch windows 里面的EPwm1Regs.TBCTR和EPwm4Regs.TBCTR的值是不一样的,但是停止运行程序后,EPwm1Regs.TBCTR和EPwm4Regs.TBCTR的值又都变成一样的了,

请问这是怎么回事?谢谢!

 

  • 我在最新的CCSV5中用epwm_timer_interrupts例程,在连续运行的时候watch windows 里面让watch windows自动刷新,EPwm1Regs.TBCTR到EPwm4Regs.TBCTR的值是一样的。

    楼主用例程试试,看看结果如何。

  • 你好,你说的“epwm_timer_interrupts例程”,是全局时钟同步,

      EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through

      EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through

      EPwm3Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through

      EPwm4Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through

      EPwm5Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through

      EPwm6Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through

    EPwmx.Regs.TBCTL.bit.SYNCOSEL 设置成0 ,1,2都没有关系吧?

  • 有区别,之所以这里设置成TB_SYNC_IN和设置成disable没区别是因为这个例程中没有SYNC_IN信号。

    你说的”连续运行时,发现watch windows 里面的EPwm1Regs.TBCTR和EPwm4Regs.TBCTR的值是不一样的“我也发现了,在下图处,把Halt the target的勾打起来就一样,不打起来,可能仿真器读取芯片内部的数据有快有慢,就不一样。

  • 谢谢你,可是我按照那个图片里的设置还是不行啊。我附上我的程序,是在CCS3.3上编写的。

    谢谢!

    PWM_TIMER_INT.rar
  • 我试了一下您的程序,可以的。按照上面的图片设置后,要重新lanuch debug

  • 本想这个问题到此为止的,但是想想离想要的结果还有一步就再问下吧,叨扰了,先谢谢了!

    设置如图:

     

    2. 然后,右键选取仿真配置里的“lanch selected configuration”

    3.连接上仿真器和控制板,加载编译好的程序,选择实时查看和刷新 ,再点击连续运行

     

    发现他们的值还是不一样,但是停止运行程序后,所有的结果又变成一样了。

    我的软件是CCSV5,前几天才全部更新了一遍。

    请指正错误,谢谢!

  • 可以了,谢谢!

  • 怎么又可以了?

  • 没有把我的配置 335USB2.ccxml设置成默认。在默认的情况下,右键其属性,选择上halt target的属性,再lauch 连接,实时模式下刷新,连续运行就可以了。