当一条RTI 指令被执行时,这些值都就会按照出栈的顺序从堆栈中恢复过来。作为RTI 序列的一部分,
CPU 通过读取三个字节的程序信息来装满流水线,从由堆栈中恢复的PC 地址开始。
由中断触发所修改的状态标志必须在ISR 返回前清除。一般地,这个标志应该在ISR 开始时清零,这样
另一个同源中断发生时,该状态标志可以记录这个事件,使得在完成当前ISR 后,该事件可被响应。
5.5.2
外部中断请求(IRQ) 引脚
外部中断被IRQSC 状态和控制寄存器管理。当IRQ 功能可用,同步逻辑监控引脚是边沿触发还是边沿/
电平触发。当MCU 处于停止状态并且系统时钟被关闭时,IRQ( 如果被使能) 通过异步通道可以将MCU 从停
止模式唤醒。
5.5.2.1
引脚配置选项
为了将引脚中断请求(IRQ) 输入,寄存器IRQSC 的IRQ 引脚使能控制位(IRQPE) 必须设为1。作为
IRQ 输入时,用户可以选择检测的边沿和电平的极性(IRQEDG),不论仅是边沿检测还是边沿和电平同时检
测,事件发生时是直接触发中断还是只置IRQF 标志,待软件处理。
当IRQ 引脚使能时默认使用内部的上拉/ 下拉设备(IRQPDD=0),是上拉还是下拉由选择的极性决定。
如果用户需要使用外部上拉或下拉,向IRQPDD 写1 关闭内部设备。
BIH 和BIL 指令可能在引脚设为IRQ 输入时被用做侦测IRQ 引脚的电平。
注意
引脚到V 不包含箝位二极管,因此不能输入超过V 的电压。上拉IRQ 引脚标
DD
DD
准电压必须低于V –0.7V。所有与该引脚相连的内部始终与V 相连。
DD
DD
当使能IRQ 使用时,IRQF 被置位,而且应该在使能中断之前清零。在一个5 V 的
系统中,当配置引脚为下降沿而且电平触发,有必要在清标志位和使能中断之间等
待6 个周期。
5.5.2.2
边沿/ 电平触发
IRQMOD 控制位重新配置检测逻辑,所以它负责检测时间和引脚电平。在边沿和电平检测模式下,当检
测到一个边沿(当IRQ 引脚从非指定的变成指定电平时)IRQF 状态标志位被置位,但只要IRQ 引脚保持在
指定电平,这个标志位持续置位。
5.5.3
中断向量、中断源和局部屏蔽
表 5-2 给出了所有中断源的摘要。高优先级的源被定位在表的底部。中断服务程序的高地址字节被定位到
向量地址列的首地址,中断服务程序的低地址字节被定位在向量地址列的下一个更高地址。
当中断条件发生,相关的标志位被置位。如果该相关的中断使能位为1,则中断请求发送到CPU。在
CPU 的内部,如果全局中断屏蔽位为0(CCR 的I 位),CPU 将完成当前的指令,然后将CPU 寄存器PCL、
PCH、X、A 和CCR 入栈,I 位置位,然后取最高中断优先级的中断向量。然后到中断服务程序中处理。
MC9S08AC16 系列微控制器数据手册, 第6 版
#
飞思卡尔半导体公司