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.

RM42x的中断设置

Other Parts Discussed in Thread: RM42L432, HALCOGEN

照着例程设置了RM42L432的RTI中断,可一运行就中断异常

1、RTI使能了

2、VIM里RTI compare 0中断使能了

3、在主函数中进行了rtiNOTIFICATION_COMPARE0的notification使能

4、rtiStartCounter(rtiCOUNTER_BLOCK0);

5、void esmGourp2Notification(int bit)这个函数也建立了    

顺便问一句,对于第5条中的函数,是用来中断异常处理的吗?是不是我要用哪个中断,其对应的VIM channel编号都要建立一个这样的函数?

 

除了上面这些东西还有什么要设置的吗?

  • 您好,请下载最新的HALCoGen v4.0版本软件,安装后建立关于RM42L432的工程,然后在Help->Help Topics中展开Examples,可以找到

    example_rtiBlinky.c的程序,按照其中的指示即可实现RTI的中断功能,但需要注意在示例中开始建立工程要选择RM42L432型号。
     
    谢谢!
  • 感谢你这么晚还给我回复,谢谢!

    我现在就是按照help topics里的步骤来做的,但enable_irq后就总会异常中断

    然后就是调用capGetSignal(hetRAM1, cap1, pwmSignal);之后,程序也会异常,跳到sys_intvecs.asm中的

    prefetchEntry
    b prefetchEntry
    b _dabort

  • 再请教一个问题,就是我设置GIO的上升沿中断,GIO的intenaset寄存器,就是使能中断的寄存器已经enable了,然后运行的过程中intflg标志位也置位了,但为什么程序不跳到中断服务程序中呢?

    是我哪里没有设置吗?谢谢!

  •  您好,请查看一下VIM和CPU处的中断使能是否已经打开了,一般来说中断不能响应的话可以从三个地方入手检查对应的中断使能是否打开:模块,VIM和CPU处。谢谢!

  • 你好,你说的VIM是VIM Channel那里,模块的是外设模块自己的中断使能,CPU那里是指的什么呢?

  • 您好!CPU处会有一个总的中断控制开发,如果要CPU响应中断,则要打开这个开关,实现很简单,只需在程序中加入如下指令即可:

    _enable_interrupt_();

    谢谢!

  • 这个我现在使用的是_enable_IRQ();  这个和_enable_interrupt_();有什么区别呢?后者将FIQ也打开?

    还有就是你说的这个_enable_interrupt_();在sys_core.h中可以找到,但是我用的那个却不在工程的文件中,找不到声明。

    我现在RTI,SCI中断都正常,但是GIO的中断只能看到FLG寄存器的标志位变化了,但是没有自己进入到中断中。


    再请教一个SPI的问题,我现在想实现一个轮训方式的SPI,有两个芯片,一个主一个从,如果使用internal也就是内部时钟,发送波形是正常的,CS电平一直是低,但是接收一直停在while((spi->FLG & 0x00000100U) != 0x00000100U)

    之后我取消了internal时钟的勾选,这种情况就是使用CLK信号了吧?但是我发送的时候发送端,也就是Master那里也停在while((spi->FLG & 0x00000100U) != 0x00000100U)这句话这里。每个管脚都没有波形

    请问SPI不使用中断,应该怎么配置呢?


  • 解决了,理解错了internal clock的意思