Part Number:RM57L843Other Parts Discussed in Thread:HALCOGEN
TI工程师您好:
RTI模块我是在HALCOGEN如此配置的:采用counter 0产生三个定时中断:1ms (compare0),4ms (compare1)和10ms (compare2)。同时采用counter 1,compare3周期最大(0xFFFFFFFF)来监控上述1ms和4ms定时中断的周期,通过读取Compare3的tick,函数是rtiGetCurrentTick(compare3),计算两次中断该返回值的差值来得到周期, 并且记录上述周期的最大值和最小值。我发现一个奇怪的现象:
10ms任务执行一多(函数执行多),1ms和4ms定时周期的偏移就会比较大,10ms中没有关闭中断和重新使能中断的操作。想请教一下这个可能是什么原因产生的。
Cherry Zhou:
您好我们已收到您的问题并反馈,预计将于24小时内给您答复。谢谢。
,
Cherry Zhou:
您目前的状况是获得了更多compare 2 中断,而 compare1 和compare0 的中断较少对吗?
我们建议您可以声明 3 个全局变量 (例如 cnt0 、 cnt1 和 cnt2) 来计算compare 0/1/2 中的中断数。
void rtiNotification(rtiBASE_t *rtiREG, uint32 notification){ /* enter user code between the USER CODE BEGIN and USER CODE END. */ /* USER CODE BEGIN (12) */
if (notification == rtiCOMPARE0)
cnt0++;
if (notification == rtiCOMPARE1)
cnt1++;
if (notification == rtiCOMPARE2)
cnt2++;
/* USER CODE END */}