我没有使用HCG进行RM42的外部中断配置,我再CCS中使用一下函数进行配置
vimChannelMap(9U, 9U, &vISR_GIO_MAX3107_Timeout);
vimEnableInterrupt(9U, SYS_IRQ);
_enable_interrupt_();
当进行以上配置后,发现vISR_GIO_MAX3107_Timeout只进入一次中断函数,我用示波器发现中断触发的pin已经被拉低,且不再恢复到高电平。
然后我再IAR的环境中将这个函数vISR_GIO_MAX3107_Timeout,前面增加__irq __arm 就可以正常中断了,请问在CCS中怎么配置这个中断函数?
Susan Yang:
很抱歉,我对这颗芯片不太熟悉,请您去英文E2E咨询下相关的工程师,谢谢
e2e.ti.com/…/312
,
user4091827:
我已经找到如何解决了,方法如下:
1.在sys_vim.c文件中添加channel 9的中断函数
static const t_isrFuncPTR s_vim_init[96U] ={ &phantomInterrupt, &esmHighInterrupt, /* Channel 0 */ &phantomInterrupt, /* Channel 1 */ &phantomInterrupt, /* Channel 2 */ &phantomInterrupt, /* Channel 3 */ &phantomInterrupt, /* Channel 4 */ &phantomInterrupt, /* Channel 5 */ &phantomInterrupt, /* Channel 6 */ &phantomInterrupt, /* Channel 7 */ &phantomInterrupt, /* Channel 8 */ &vISR_GIO_MAX3107_Timeout, /*gioHighLevelInterrupt Channel 9 */
。。。
2.在所定义的函数前添加如下:
#pragma CODE_STATE(vISR_GIO_MAX3107_Timeout, 32)#pragma INTERRUPT(vISR_GIO_MAX3107_Timeout, IRQ)
完成以上步骤即可。
,
Susan Yang:
谢谢您的分享!