主题中讨论的其他器件:TMS320F28377D
我的客户遇到计时器2中断问题、在该中断启用后、即使没有设置 TIF 标志或计时器已达到零(倒计时模式)、也会立即调用服务例程。
您对防止此问题的建议是什么?
谢谢!
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.
我的客户遇到计时器2中断问题、在该中断启用后、即使没有设置 TIF 标志或计时器已达到零(倒计时模式)、也会立即调用服务例程。
您对防止此问题的建议是什么?
谢谢!
你好、Ken -
我将 TIMER2用于 FreeRTOS 节拍。
我使用以下命令来设置 IER 位:
IER |= M_INT14;
之后、我将计时器配置为1ms 中断、如下所示:
ConfigCpuTimer (&CpuTimer2、SYSCLK_MHz、1000000 / configTICK 比率_Hz);
CpuTimer2Regs.TCR.ALL = 0x4000;
几条指令之后、我全局启用具有以下行的中断、并立即从 TIMER2获取中断:
_asm (" CLRC INTM");
TIM 寄存器仅对~3000进行倒计数、TIF 位不置位。
这似乎在我对 DSP 进行下电上电后100%的时间内发生、但如果我使用 CCS 进行"软"复位、则不一致。
感谢您的帮助!
——Chris
[引用 user="Chris Graunke"]这似乎是在我对 DSP 进行下电上电后100%的时间发生的,但如果我使用 CCS 进行"软"复位,则会出现不一致的情况。
Chris、
我将更详细地介绍这一点。 CPU 定时器是一个自由运行的计数器、它将在器件复位时运行。 在使用 ConfigCpuTimer 配置它之前、首先停止计时器并重新加载周期、以便所有处于已知状态的内容。 在 CpuTimers 示例- InitCpuTimer()中有这样的示例代码。
// // InitCpuTimers -此函数将所有三个 CPU 计时器初始化为已知 // 状态。 // 空 InitCpuTimers (空)
此致、
Lori