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.

[参考译文] TMS320F28027:IFR 中断标志停止被置位

Guru**** 2586355 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/651013/tms320f28027-ifr-interrupt-flag-stop-to-be-set

器件型号:TMS320F28027

我按照以下文件起草一个示例代码、使用 PWM 计时器触发 ADC 采样、并实现 PWM 和 ADC 中断。  

关键点是 PWM 中断代码将占用很长的时间来阻止 ADC 中断、直到 ADC 中断覆盖标志被置位、然后清除 ADC 覆盖标志并 释放 PWM 中断来恢复 ADC 中断。

 e2e.ti.com/.../Example_5F00_2802xAdcTempSensor.txt

 

但是  、在 TI LaunchPad 上运行一段时间后、PWM 和 ADC 都停止跳转到中断函数。   

我再次确认寄存器 ADC/PWM 中断标志被置位和启用、PIE 标志也被置位和启用、IER 也被启用、但是 IFR 不被置位。

我怀疑 C2000中断硬件中是否有问题、是否希望您提供帮助检查和建议?  

 

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

    Terry、

    感谢您捕获寄存器值。  我看到 ADCINTOVF 标志0x4仍然被置位、这意味着额外的 ADCINT3中断没有及时得到处理。

    当 ADCINTOVF 标志被置位时、ADC 可能无法触发系统中断。  所有溢出标志都应通过 ADCINTOVFCLR 寄存器清零。

    另一个选项是将 ADCINT 配置为在连续模式下运行、这样即使中断不能及时处理、也会继续触发中断。

    应该可以执行以下两种操作: 将系统配置为作为主要方法处理和清除 ADCINT 标志、但启用连续模式、以便在发生溢出的不太可能的情况下不会错过中断。

    Tommy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Terry、
    我将结束本主题、如果您仍有任何疑问、请再次回答。

    此致、
    Cody