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.

[参考译文] TMS320F2.8035万:当PWM1中断生成时,Cputimer0中断丢失

Guru**** 2554160 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/635341/tms320f28035-cputimer0-interrupt-is-lost-when-pwm1-interrupt-generate

部件号:TMS320F2.8035万
主题中讨论的其他部件:DRV8312-C2-Kit

我正在使用带有tms320f2.8035万的DRV8312-C2-Kit。 我使用Cuptimer0生成中断。 在PWM1中断生成后,Cputimer0中断丢失,Cputimer中断不稳定,它始终偏移。 如果有人能帮我吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    上述方法没有意义,因为CPUtimer0具有最高优先级,并且PWM1计时器无法覆盖CPUtimer0。 您是否有任何要共享的定时波形?

    此致,
    Gautam
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用GPIO22监控cputimer0中断(黄色),使用GPIO23监控PWM中断(蓝色)

    __interrupt void CPU_timer0_isr (void)


    GpioDataRegs.GPASET.bit.GPIO22 = 1;//设置输出
    CpuTimer0.InterruptCount++;
    CpuTimer0Regs.tcr.bit.tif = 1;/*清除CPU timer0的中断标志(TIF)*/
    PieCtrlRegs.PIEACK/bit.ACK1 =1 ;/*清除中断确认CPU timer0中断的PIEACK3组*/
    GpioDataRegs.GPACLEAR.bit.GPIO22 = 1;//清除输出

    }

    __interrupt void PWM_isr1 (void)

    GpioDataRegs.GPASET.bit.GPIO23 = 1;//设置输出
    pwm1interrupt ++;//测试代码
    EPwm1Regs.ETCLR.bit.INT = 1; //清除PWM 3中断标志,等待下一个PWMONTIME中断
    PieCtrlRegs.PIEACK/bit.ACK3 =1 ;/*清除中断确认CPU timer0中断的PIEACK3组*/
    GpioDataRegs.GPACLEAR.bit.GPIO23 = 1;//设置输出
    }

    您可以看到每次PWM中断,cputimer中断都会丢失
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在PWM ISR期间和结束时是否设置了CPU计时器中断标志?

    此致,
    科迪  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,亲爱的Cody:

    非常感谢您的反馈。

    是的,CPU计时器中断标志设置在PWM ISR的末尾。 我在PWM ISR的末尾做一个中断点,并使用debug监视寄存器值。  

    顺便说一下,如果我只使用CPU计时器中断或仅使用PWM中断。 一切都很好 您是否有配置2中断的示例? 我检查了控制套件,但从未找到同时使用两种中断的示例。 我不知道我的配置是否良好。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    默认情况下,禁用嵌套中断。 有一个Wiki网页,详细介绍了中断如何与C28x处理器配合使用。 http://processors.wiki.ti.com/index.php/Interrupt_Nesting_on_C28x 

    我认为您的配置可能是可以的,请通读Wiki网页并决定是否要尝试实施嵌套中断。

    希望它有所帮助,
    科迪