




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章STM8S207中断系统中断是用于提高计算机工作效率的一种重要技术,最初它只是作为计算机与外设交换信 息的一种同步控制方式而提出,但随着计算机技术的发展,特别是CPU速度的迅速提高, 对计算机内部机制的要求也越来越高,希望计算机能随时发现各种错误,当系统出现意想不 到的事件时,能及时处理。于是,中断的概念得以延伸,除了传统的外部事件引起的中断事 件外,还有CPU内部软件中断的概念。所谓中断,是指CPU在正常执行程序的过程中, 由于内部、外部事件或者由程序的预先安排,引起了 CPU暂时中断当前程序的运行,而转 去执行由内部、外部事件或预先安排的时间而所需要执行的中断服务子程序,在中断服务子
2、 程序执行完毕后,CPU再重新回来执行当前的程序。利用中断可以大大提高CPU的工作效 率。实现中断功能的控制逻辑称为中断机构或者中断系统。尽管单片机或者微控制器中的中断系统各不相同,但中断系统的基本功能是相同的:1、能实现中断响应、中断处理、中断返回和中断屏蔽2、能实现中断优先级排队3、能实现中断嵌套本章介绍STM8S207微控制器的中断系统以及STM8S207微控制器对于中断的处理 流程。9.1 STM8S207中断系统概述STM8系列单片机的中断属于异常情况处理的一部分,异常情况处理还包括复位,所以 本章除论述STM8系列单片机的中断系统,也简要介绍STM8系列单片机的几种更位情况。 正常
3、情况下,单片机有序的执行对应程序,按照明确的获取-解码-执行方式顺序处理各种指 令。程序计数器记录下一条程序指令位于内存中的位置,即使当程序为了相应分支或跳转指 令而偏离了正常的顺序处理,但依然是在顺序事件处理的控制范围之内。可能发生的异常情 况会被打破这种事件处理的顺序流,将一个正常程序流的中断归为一个异常情况,异常情况 不一定总是和错误相关联的,中断是在一个处理器上运行多个系统的有效方法。通过上面的 论述可以知道,STM8程序运行时可能发生的异常可分为两类:复位和中断,而中断又进一 步分为可屏蔽和不可屏蔽中断。9.1.1 STM8S207 的复位STM8S207共有9个更位源:1、NRST
4、引脚产生的外部更位2、上电好位(POR)3、掉电匆:位(BOR)4、独立看门狗及位5、窗口看门狗复位6、软件复:位7、SWIM更位8、非法操作码复:位9、EMS复:位:当一些关键的寄存器被破坏或错误加载时产生的复位所有的及位源最终都作用于NRST管脚,并在史位过程中保持低电平。复位入II向量 在内存映射中位于固定的地址6000ho9.1.2 STM8S207单片机的中断STM8S单片机的中断分为可屏蔽中断和不可屏蔽中断。1、不可屏蔽中断不可屏蔽中断包括软件中断、及位中断以及TLI中断,下面简要介绍常用的几个不可 屏蔽中断。(1)软件中断TRAP实质上是条指令,但其执行过程与中断相同,即通过中断
5、矢量确定目标地址,中 断矢量是8004H8007Ho(2)更位中断更位产生的复位源有前面所说的9个,对应的中断矢量是8000H-8003HTLITLI是非屏蔽中断引脚,无论MCU处于哪种运行状态,当在特定的10 口边缘检测到 在相应的TLI输入时将产生硬件中断,MCU执行完当前指令后,就会相应该中断,中断矢 量为8008H800BHo需要注意的是在TLI中断服务子程序中禁止使用TRAP指令。2、可屏蔽中断可屏蔽中断可以在程序控制下由用户开启或者关闭。由于STM8S207的可屏蔽中断数 量非常多,这里不详细介绍,在对应功能模块时才分别详细介绍。3、中断堆栈操作顺序因为中断响应过程中,会有隐含的堆
6、栈操作,所以中断响应前,堆栈必须有效,即堆栈 指针SP必须指向一个有效的RAM区,而且堆栈的大小必须不少于9字节。入栈操作使堆栈指针值减小,出栈操作使堆栈指针值增加。当堆栈指针值为其被允许的 最小值时,继续入栈会使堆栈指针值回卷至其最大值,从而会导致先前存储的数据被覆盖, 但此时没有中断或硬件标志位来指示该事件发生。应用程序需确保堆栈被正确的操作,没有 溢出。子程序调用会占用2或3字节空间。中断调用会占用9字节空间来存储内部寄存 器(除SP之外)。注:WFI/HLAT指令会预先保存CPU上下文。如果CPU处于WFI或HALT状态下有 中断发生,则进入中断所需的延时会相应减少。中断响应堆栈入栈操
7、作如卜图所示:出栈相反序号堆栈地址入栈内容说明1SP-3PCE:PCH:PCL保存PC值2SP-5YH:YL保存寄存器Y3SP-7XH:XL保存寄存器X4SP-8A保存累加器A5SP-9CC保存程序状态字CC更为详细入栈出栈顺序如卜图所示:HMTERRUPT GENERATION (eMCUt,pipHrw) J9.2中断管理模式STM8S207提供2种中断管理模式1.1.1 生模式1.1.2 式9.2.1 同时发生中断管理模式在该模式下,所有的中断的中断优先级都是3级,因此它们都是不可以被中断的(除了 被TU, RESET或TRAP中断之外)。硬件的中断优先级按如下顺序排列,从低到高的优先级
8、是:MAIN, IT4, IT3, IT2, IT1, ITO, TRAP/TLI(同等优先级)以及RESETo需要注意的是,通过软件优先级寄存器设定的优先级并不表示当出现中断嵌套时,高优 先级中断可以中止低优先级中断的服务程序执行,而转向高优先级中断的服务程序运行。这 里高优先级作用只是当多个中断源同时请求中断时才能体现,这时STM8S208将首先响应 高优先级的中断,低优先级的中断不会得到相应。STM8S207默认的中断处理机制如下图所示:软件优先级别优先级1112。级(主程序)低I101级012级高003级(=无软件优先级)11da:l I p- 1-IE I S IAlcoEd 山TR
9、AP)- Icm i - - - 叵3 :C仃2 )r ,w-3333333/01 11 11 11 11 11 1TSOFTWARE PRIORITY LEVEL9.2.2 嵌套中断管理模式在该模式下,允许在中断子程序中响应中断。一旦一个中断的优先级被设置低于3级 时该模式就立即有效。注意:在中断被响应时如果位II和I0被修改,那么设备将作如下处理:如果一个中 断X仍然处在悬起状态(新的中断或者中断标志没有被清除)同时该新的优先级又比先前 的优先级高的话,那么该中断X会被重新响应。否则该中断的软件优先级在下一个中断请 求(X中断的IRET之后)来之前保持不变。在中断子程序的执行过程中,执行H
10、ALT, POP CC, RIM , SIM和WFI指令会改变当前的 软件优先级直到下一条IRET指令被执行或者先前提到的指令之一被执行。(TRAP)SOFTWARE PRIORITY LEVELHdLUIHbMSHaH 3 main 3/0 10C IT2 r 3C IT1 I- fiTTj 3Rir1 11 11 11 11 11 1一 MAIN11/1093中断映射STM8S207的中断映射如S图所示:中断向中斯海接述从件机(Halt)模式 明制功能从新灰侪机(Aetve Halt)顿式噢制功能向眼地就RESET如处8000hTRAP牧件中断8004h0TLI外和驻高缎中新6008h1A
11、WUfl动啖IW HALT模武中断处800012XKSQlQh3EXTIQ明口 A第事中即是是8014h4EXTI1却口 B外吊中胤8018n5EXTI2编CC炸M中断AS是8Q1Ch6EXTI3明口。外事中即是是8020h7EXTI4却CIE外倒中胤足是802flh9CANCAN RX中断AS是8028hSCANCM4 TX/ER/SC 中斯802Ch10SPI发送完成小地8030h117M1史斯/上沿出小潜出碗发J制不6034h12TM1轴蚓比较8038b13TM2史新让沿山8030114I M2和我/lt较8040115TM3史新/上程出8O44h16TM310加比就804ah17UAR
12、T1式送充成8040118UART1推板寄存器涡8050h19I2C12c中断*是805ah20URT2/3发送完UL8058h21UtRT2J3接收寄界M酎805022ADC器换肘来8060K23TW48064h24FLAS-H策48箭球懒II爆(程8066n保用aoechu aozch需要注意的是在IAR开发环境中使用中断矢量的时候要加上2,例如TLI的中断向量 号为0,那么在IAR中就是2 了,如此类推。9.4 中断寄存器设置STM8S207的中断设置寄存器还是比较少的,只有CPUCC寄存器中断位、软件优先级 寄存器、外部中断控制寄存器1与2,下面详细讲解STM8S207的中断寄存器设置
13、。9.4.1 CPU CC寄存器中断位76543210V-IIH10:ZcriErrwrrr正如前面介绍的,II、10这两位表面当前中断请求的优先级。当一个中断请求发生时,相应的中断向量的软件优先级自动从ITJSPRx载入II、10中1110优先级级别100级(主程序)低高01级用100级别2113级(二禁用软件优先级)注意:不可屏蔽中断可以中断一个级别为3的程序。9.4.2 软件优先级寄存器ITJSPRxITC.SPR1VECT3SPRl:0VTCT2SPRl:0VECT1SPR1:OVECT0SPRl:0ITC.SPR2VTCT7SPRl:0;TCT6SPRl:0VECT5SPRl:0VE
14、CT4SPRl:0ITC.SPR3VECT11SPR1:OVECT10SPRl:0VECT9SPRl:0TCT8SPRl:0ITC.SPR4VECT15SPRl:0VECT14SPRl:0VECT13SPRl:0:VECT12SPRl:0:ITC.SPR5TCT19SPRl:0VECT18SPRl:0VECT22SPRl:0:VECT16SPRl:0:HCSPR6VTCT23SPRLl:0VECT22SPRl:0VECT21SPRl:0TCT20SPRl:0:ITC.SPR7VECT27SPRl:0VECT26SPRl:0VECT25SPR1:OJVECT24SPRl:0:ITC.SPR8保留
15、VECT29SPR:l:0VECT28SPRl:0:65通过软件对这8个寄存器的操作,可以定义各个中断向量的软件优先级。注意的是ITC_SPR1位1:0由硬件强制设置(TLI)9.4.3 外部中断控制寄存器两个外部中断控制寄存器设置外部中断的触发方式,EXT_CR1、EXT_CR2分别设置了 PE、 PD、PC、PB、PA以及TLI的触发方式。7654s21PDISl:0PCISl:0jPBI5l:0PAIS1:Orwrvrwrvrrrw保留TLISPEIS1:O64321rwrvPxlSl:O,其中 x 代表 A、B、C、D、E这些位仅仅在cc寄存器的II、10都为1时才可以写入。00:下降
16、沿和低电平触发01:仅上升沿触发10:仅下降沿触发11:上升沿和下降沿触发TLIS:高级中断触发位0:下降沿触发1:上升沿触发9.5 不可屏蔽外部中断基本实例在这里实现一个外表不可屏蔽中断的实例,也就是TLI中断,由STM8S207引脚可以 知道TLI就是PD7 I Io本实例硬件连接如下图所示:其中PD7是按键,这里还需要LED1 也就是PDO作为测试引脚。本实例中关于LED灯的实现已经在前面章节中介绍过,本章介绍中断服务程序的编写。 由中断矢量表可以查到TLI的中断号为0,而在IAR下加2就是2。TLI中断编写顺序为:初始化对应10 口中断模式,这里就是PD7 口,通过CR1, CR2设置初始化对应中断的方式,例如TLI就是EXTI_CR2的第三位,默认是0,也就是下降沿 触发。开全局中断开关,允许中断触发。编写中断服务子程序下面是实例程序代码。#include ,iostm8s207rb.hH void delay_ms(int value);int main( void )(配置PD0-PD3为输出模式PD_DDR |=0x0F;/00001111, 1 为输出PD_CR1 | = OxOF; 推挽输出PD_CR2 = 0x00; 配置PD7中断PD_CR1_C17
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年厦门a2货运从业资格证考试
- 2025年武威驾校考试货运从业资格证考试
- 《中医药基础》课程标准
- 减肥连锁加盟合同范本
- 农村后院出租合同范本
- 厂房车间装修合同范本
- 加工合同范本文库
- 中专毕业个人自我鉴定
- 关于小麦收购合同范本
- 仓库配送员合同范本
- 《配电自动化运维人员培训考核规范(征求意见意见稿)》
- (中职组)植物病虫害防治知识竞赛考试题库(含答案)
- 肌肉注射新版本
- 大班语言活动-海豹到哪里去了
- 小班社会《认识家用电器》课件
- 高考概率大题必练20题(理科)-含答案
- 凉水井煤矿矿山地质环境与土地复垦方案
- 果实酚类和挥发性物质含量特征及其与果实品质关系的研究
- 2023年东华高级中学中考自招数学复习题及答案解析
- 结果比过程重要辩论赛
- JTG C10-2007 公路勘测规范
评论
0/150
提交评论