请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMDSCNCD263 工具与软件:
您好!
我将 RTI 模块用于 am263x-cc 电路板。 我想测试 RTI 溢出中断、所以我已经将预分频值配置为1、并且 RTI 时钟频率为200MHz。 但我没有获得溢出中断、而 FRC 值更新为0xFFFFFFFF 并再次从0重新启动。
我的代码是这样的。
/*配置计数器块0 */
cntrPrescaler = 1;
RTI_counterConfigure (baseAddr、RTI_TMR_CNT_BLK_INDEX_0、RTI_TMR_CLK_SRC_COUNTER、RTI_TMR_NTU_0、cntrPrescaler);
RTI_captureConfig (baseAddr、RTI_TMR_CNT_BLK_INDEX_0、RTI_TMR_CAPTURE_EVT_0);
RTI_intStatusClear (CONFIG_RTI0_BASE_ADDR、RTI_TMR_INT_OVL0_FLAG);
Hwip_Params_init (&rtiHwiParams);
rtiHwiParams.intNum = CONFIG_RTI0_INT_NUM_EVENT0;
rtiHwiParams.callback = RTI_overFlowIntrIsr;
rtiHwiParams.isPulse = 0;
rtiHwiParams.priority = 4;
rtiHwiParams.args = testParams;
状态= Hwip_construct (&G RtiEvent0HwiObj[CONFIG_RTI0]、&rtiHwiParams);
DebugP_assertNoLog (STATUS==SystemP_SUCCESS);
RTI_intEnable (CONFIG_RTI0_BASE_ADDR、RTI_TMR_INT_OVL0_FLAG);
RTI_intDisable (CONFIG_RTI0_BASE_ADDR、RTI_TMR_INT_DMA0_FLAG);
/*启动 RTI 计数器*/
(void) RTI_counterEnable (CONFIG_RTI0_BASE_ADDR、RTI_TMR_CNT_BLK_INDEX_0);
DebugP_log ("Timer started、observe LED 将在溢出后关闭!!\r\n");
/*等待直到溢出后 LED 将关闭*/
while (gBlinkCount =0);
/*停止 RTI 计数器*/
(void) RTI_counterDisable (CONFIG_RTI0_BASE_ADDR、RTI_TMR_CNT_BLK_INDEX_0);
DebugP_LOG ("计时器已停止...\r\n");
并且我有 ISR 函数、我将在其中禁用 RTI 中断并调用 ISR 函数:
void RTI_overFlowIntrIsr (void *参数)
{
RTI_TestParams * testParams =(RTI_TestParams*) args;
rtiOverFlowEvent();
RTI_intStatusClear (CONFIG_RTI0_BASE_ADDR、RTI_TMR_INT_OVL0_FLAG);
hwiP_clearInt (CONFIG_RTI0_INT_NUM_EVENT0);
}
但我无法获得溢出中断、任何 RTI 专家可以在这里帮助吗?
Anil