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.

关于RM42外部中断手动配置问题



 我没有使用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中怎么配置这个中断函数?

  • 很抱歉,我对这颗芯片不太熟悉,请您去英文E2E咨询下相关的工程师,谢谢

    e2e.ti.com/.../312
  • 我已经找到如何解决了,方法如下:

    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)

    完成以上步骤即可。

  • 谢谢您的分享!