Hello
请问一下,我在试TMS570的一个RTI中断让LED闪烁,而ISR里面,只有HET的代码,如下图:
在ISR执行后,不需要清除任何中断旗标(flag)吗?
由於我之前是c2000的使用者,都会需要去清旗标。
谢谢
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.
Hello
请问一下,我在试TMS570的一个RTI中断让LED闪烁,而ISR里面,只有HET的代码,如下图:
在ISR执行后,不需要清除任何中断旗标(flag)吗?
由於我之前是c2000的使用者,都会需要去清旗标。
谢谢
Shunfan,
RTI的中断标志清楚操作在另外一个函数里面,你可以查看RTI.c 里面的函数:
#pragma INTERRUPT(rtiCompare0Interrupt, IRQ)
void rtiCompare0Interrupt(void)
{
/* USER CODE BEGIN (39) */
/* USER CODE END */
rtiREG1->INTFLAG = 1U;
rtiNotification(rtiNOTIFICATION_COMPARE0);
/* USER CODE BEGIN (40) */
/* USER CODE END */
}
谢谢
Hello Ken,
看来是我搞错了,ISR应该是rtiCompare0Interrupt() 才对而不是 rtiNotification(),
那请问rtiNotification()的功用为何呢? 我发现每一个ISR里面都有一个Notification(),TI内建这个函数的目的为何呢?
谢谢您
rtiNotification()函数你可以把它看做一个中断回调函数,里面可以加上你自己需要执行的操作。HALCOGEN自动生成的rtiCompare0Interrupt()只是做了一个中断标志清楚和相应的中断函数的响应过程。
当然你也完全可以甩notification函数,把程序都放在interrupt函数里面也行。
谢谢