HT46R064B/065B/066B
中断操作
定时/计数器溢出、时基事件或者外部中断引脚上有一个有效的边沿信号都会产生一个中断请
求,如果相应的中断允许,系统将要执行指令的下条地址压入堆栈,并将相应的中断向量地址加载
至 PC 中,然后从此向量取下条指令。中断向量处通常为跳转指令,以跳转到相应的中断服务程序。
中断服务程序必须以 RETI 指令返回,系统将先前压入堆栈的地址返回 PC,以继续执行中断发生时
的程序。
各个中断使能位以及相应的请求标志位,以优先级的顺序如下图所示。
中断示意图
一旦中断子程序被响应,所有其它的中断将被屏蔽(系统自动清除 EMI 位),这个方式可以防
止中断嵌套。如果其它的中断请求发生在此期间,只有中断请求标志位会被置位。也可以开启中断
嵌套,即在某个中断服务子程序中置位 EMI,此时如果有另一个中断发生则允许响应此中断。如果
堆栈已满,即使此中断使能,中断请求也不会被响应,直到 SP 减少为止。如果要求中断服务程序
立即响应,则堆栈必须避免成为储满状态。
当中断请求产生后,需要插入 2 个或 3 个指令周期,程序才能跳转到相应的中断向量地址。而
单片机在休眠模式被唤醒时,需要插入 3 个指令周期,程序才能跳转到响应的中断向量地址。
中断流程图
Rev 1.00
2011-04-13
58