1.电平式与脉冲式中断
处理器支持电平式中断及脉冲式中断。脉冲式中断通常又称为边沿触发中断。
对于电平式中断而言,只要外设产生中断信号就会始终保持处于触发状态,直到外设中断信号复原后才不再触发。一般来说,这需要ISR(中断服务子程序)对外设进行操作,使得外设不再产生中断请求信号。脉冲中断是在处理器时钟的上升沿同步采样的中断信号。为了确保NVIC能够检测到中断,外设所产生的中断信号必须保持至少一个时钟周期,在此期间NVIC可检测到脉冲并锁存中断。
处理器进入ISR后,将自动清除该中断的挂起状态。对于电平式中断,如果处理器从ISR返回后,中断信号仍未复原,则中断将再次挂起,于是处理器必须再次运行其ISR。因此,外设可以像这样保持中断信号持续享用服务,直到其不再需要服务为止。
2.中断的硬件控制及软件控制
1)Cortex-M4锁存所有中断。当满足以下其中一个条件时,外设中断将被挂起:
①NVIC检测到中断信号为高电平,且该中断未处于激活状态。
②NVIC检测到中断信号的上升沿。
③软件写入相应的中断设置挂起寄存器的位,或者写入软件触发中断寄存器(SWTRIG)使软件产生的中断挂起。(www.xing528.com)
2)中断挂起后到出现以下条件之一时,将一直保持挂起状态:
①处理器进入该中断的ISR,将中断状态由挂起变更为激活。
●对于电平中断,当处理器从ISR返回后,NVIC将重新采样中断信号。若检测到的中断信号有效,则中断状态将再次处于挂起状态,导致处理器立即重新回到ISR;否则,中断状态将变为未激活状态。
●对于脉冲中断,处理器将连续监控中断信号。如果检测到中断脉冲信号,就会将中断状态变更为挂起和激活。因此,当处理器从ISR返回后,中断状态将再次被挂起,导致处理器立即重新进入ISR。
若处理器在ISR中并未产生中断脉冲信号,则当处理器从ISR返回后,中断状态将变更为未激活状态。
②软件写入清除中断挂起寄存器中的相应位。
●对于电平中断,如果中断信号仍然有效,则中断状态将保持不变;否则,中断状态将变更为未激活状态。
●对于脉冲中断,如果状态为挂起或激活,或者状态为激活或挂起,则中断都将NVIC紧密结合Cortex-M微处理器。当处理器响应一个中断时,NVIC直接到处理器提供函数的地址去处理中断。因此可以取消一个全局中断处理程序,去查询中断控制器以确定中断源并跳转到相应的中断处理程序,减少了中断的响应时间。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。