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.

[参考译文] TMS570LC4357:RTI 比较1中断未被观察到正在生成

Guru**** 2393025 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1431459/tms570lc4357-rti-compare-1-interrupts-not-observed-as-being-generated

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

工具与软件:

您好!

我们不熟悉 TMS570 RTI 编程。 我们已经通过 HalCoGen (并相应地生成代码)将 RTI 配置为:

在我们运行在 LaunchPad TMS570LC43x 上的软件中、 调用后 " rtiInit ()'和' _ENABLE_IRQ ()'函数,我们的代码如下:

void delayus (uint16 us)

如果(us =0)
返回;


设计

//更改中断比较值(中断周期)
//设置比较1值。
rtiREG1->CMP[1U].COMPx = 10*us;//10个时钟周期/微秒、因此乘以10
//设置更新比较1值。
rtiREG1->CMP[1U].UDCPx = 10*us;

//启用我们设置的期间的通知
rtiEnableNotification (rtiREG1、rtiNOTIFICATION_COMPARE1);

//启动计数器
rtiStartCounter (rtiREG1、rtiCOUNTER_BLOCK0);

//在循环中等待、直到中断发生(在我们设置的周期之后发生)
//发生中断时、RTI_NOTIFICATION 会在该中断中设置为1
//转至 notification.c -> rtiNotification ()以查看 RTI_TIMEOUT 设置为1的位置
while (RTI_TIMEOUT=0);

//将变量重置为0、以便下次我们进行延迟
RTI_TIMEOUT = 0;

//禁用中断通知
rtiDisableNotification (rtiREG1、rtiNOTIFICATION_COMPARE1);

//停止计数器
rtiStopCounter (rtiREG1、rtiCOUNTER_BLOCK0);

//重置计数器以在下一次我们进行延迟
rtiResetCounter (rtiREG1、rtiCOUNTER_BLOCK0);
}

}

不过、在运行时、我们观察到软件卡在"while (RTI_TIMEOUT=0);"、换句话说、" rti 通知 '永远不会被执行" 请参考 "作为其输入参数之一。

请提供建议。 谢谢你。

John