本帖最后由 刘洋讲单片机 于 2017-1-11 14:48 编辑
第15讲.STM8中断控制器(ITC).pdf
(324.1 KB)
众拳【剑齿虎STM8开发板】学习笔记分享
点击此处查看全部资料
第15讲 STM8中断控制器(ITC)关
目 录
15.1中断定义 2
15.1.1 计算机为什么要采用中断 3
15.1.2 中断优先级 3
15.1.3 STM8单片机中断嵌套 3
15.1.4 STM8单片机中断控制器功能 4
15.2 STM8嵌套中断管理模式和外部中断 4
15.2.1 中断映射 5
15.2.1 CPU CC 寄存器中断位 6
15.2.2 软件优先级寄存器x(ITC_SPRx) 7
15.1中断定义
中断:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况。此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
中断是由于软件的或硬件的信号,使得CPU放弃当前的任务,转而去执行另一段子程序。可见中断是一种可以人为参与(软件)或者硬件自动完成的,使CPU发生的一种程序跳转。
15.1.1 计算机为什么要采用中断
为了说明这个问题,再举一例子。假设你有一个朋友来拜访你,但是由于不知道何时到达,你只能在大门等待,于是什么事情也干不了。如果在门口装一个门铃,你就不必在门口等待而去干其它的工作,朋友来了按门铃通知你,你这时才中断你的工作去开门,这样就避免等待和浪费时间。计算机也是一样,例如打印输出,CPU传送数据的速度高,而打印机打印的速度低,如果不采用中断技术,CPU将经常处于等待状态,效率极低。而采用了中断方式,CPU可以进行其它的工作,只在打印机缓冲区中的当前内容打印完毕发出中断请求之后,才予以响应,暂时中断当前工作转去执行向缓冲区传送数据,传送完成后又返回执行原来的程序。这样就大大地提高了计算机系统的效率。
15.1.2 中断优先级
此外,如果在响应一个中断,执行中断处理的过程中,又有新的中断事件发生而发出了中断请求,应该如何处理也取决于中断事件的优先级。当新发生的中断事件的优先级高于正在处理的中断事件时,又将中止当前的中断处理程序,转去处理新发生的中断事件,处理完毕才返回原来的中断处理。
15.1.3 STM8单片机中断嵌套
是指中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行,这个过程就是中断嵌套。其实就是更高一级的中断的"加塞",处理器正在执行着中断,又接受了更急的另一件"急件",转而处理更高一级的中断的行为!
STM8单片机有多达4个软件可编程的嵌套等级。
15.1.4 STM8单片机中断控制器功能
●硬件中断的管理
─ 端口A、B、C、D、E的I/O引脚都具有外部中断能力,每一个端口都有独立的中断向量以及独立的标志。
● 具有灵活的优先级和中断等级管理,支持可嵌套的或同级中断管理:
─ 多达4个软件可编程的嵌套等级
─ 最多有32个中断向量,其入口地址由硬件固定
─ 2 不可屏蔽的事件: RESET, TRAP
─ 1个不可屏蔽的最高优先级的硬件中断 (TLI)
基于如下资源的中断管理:
● 位I1和I0位于CPU的条件代码寄存器(CCR)
● 软件优先级寄存器 (ITC_SPRx)
● 复位向量地址0x00 8000位于程序空间的起始部分。对于具有启动ROM的型号,ST公司把复位初始化程序固化在ROM区中。
● 固定的中断向量地址位于程序空间映像的高位地址段(0x00 8004 to 0x00 807C),其地址顺序即为硬件的优先顺序。
15.2 STM8嵌套中断管理模式和外部中断
硬件优先级从低到高按如下顺序给定,即MAIN, IT4,IT3,IT2,IT1,IT0 和TRAP。
通过设定ITC_SPRx寄存器的相应的I1_x和I0_x位来配置每一个中断向量的软件优先级。I1_x和I0_x位具有和CC寄存器的I1 和I0位相同的意思(见 表 15.1)。不可以将中断优先级设为级别0(I1_x=1, I0_x=0),在这种情况下,该中断的优先级将保持为先前的值。RESET 和 TRAP 向量是没有软件优先级的。当两者的任何一个被响应时,CC寄存器的位I1和I0两位都被置位。
表15.1 向量地址映像对应软件的优先级位
STM8S为外部中断事件专门分配了五个中断向量:
● Port A 口的5个引脚:PA[6:2]
● Port B 口的8个引脚:PB[7:0]
● Port C 口的8个引脚:PC[7:0]
● Port D 口的7个引脚:PD[6:0]
● Port E 口的8个引脚:PE[7:0]
PD7 是最高优先级的中断源 (TLI)。
为了产生中断,相应的GPIO端口必须被配置为中断使能的输入口,详细内容请参考《STM8S微控制器参考手册》GPIO章节相关内容。
15.2.1 中断映射
表15.2 中断映射表
15.2.1 CPU CC 寄存器中断位
地址:请参考数据手册通用硬件寄存器映射表
复位值:0x28
15.2.2 软件优先级寄存器x(ITC_SPRx)
地址偏移值:0x00 到 0x07
复位值:0xFF
详细内容请参考《STM8S微控制器参考手册》。
本课程录制了详细的边讲边写的视频教程,共64讲81课时,如需视频下载地址,请联系我。企鹅群335123291
|