飞思卡尔2.7中断_第1页
飞思卡尔2.7中断_第2页
飞思卡尔2.7中断_第3页
飞思卡尔2.7中断_第4页
飞思卡尔2.7中断_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第7章 S12中断系统7.1 中断系统概述中断系统概述 中断概念:指某外部事件或异常发生时,中断概念:指某外部事件或异常发生时,CPU暂暂时停止执行当前的程序时停止执行当前的程序(保护断点保护断点),转向中断服务程,转向中断服务程序;中断处理完后返回原来的程序继续运行序;中断处理完后返回原来的程序继续运行(恢复断恢复断点点)。 中断是中断是MCU的重要功能。的重要功能。 S12MCU丰富的中断源:丰富的中断源: 多个普通中断、多个特殊中断。多个普通中断、多个特殊中断。2347.1.2 S12XS的中断的中断 不可屏蔽中断:不可屏蔽中断: 非法指令中断非法指令中断 TRAP 软件中断软件中断

2、SWI 外部中断外部中断 XIRQ 系统中断系统中断 SYS 伪中断伪中断 可屏蔽中断可屏蔽中断 ( I位可屏蔽中断位可屏蔽中断 ) IRQ、RTI、TIME、SCI、SPI、CAN等功能部件。等功能部件。 CCR的的X、I位位 - 0=允许中断;允许中断;1=屏蔽中断,复位默认屏蔽中断,复位默认1。 CCR的的X位可设置一次位可设置一次,不能发生不能发生0到到1的变化即不能关闭。的变化即不能关闭。5678中断优先级:非中断优先级:非I位可屏蔽位可屏蔽 I位可屏蔽;位可屏蔽;非非I位可屏蔽中断可以中断位可屏蔽中断可以中断I位可屏蔽中断,且位可屏蔽中断,且IPL不变;不变; 例如:例如: 在中断

3、中加入在中断中加入 SWI指令,可以中断一个指令,可以中断一个I位可屏蔽中断。位可屏蔽中断。 伪中断伪中断 :$FF10 , 最底部。优先级最底部。优先级 ?。?。 系统中断系统中断 :$FF129IVBR = $FF : $FF10 TO $FFFE IVBR = $EF :$EF10 TO $EFFE107.1.3 中断优先级中断优先级 不可屏蔽中断高于可屏蔽中断,可以被多级嵌套。不可屏蔽中断高于可屏蔽中断,可以被多级嵌套。l 不可屏蔽中断的优先级不可屏蔽中断的优先级 -由硬件规定,按以下次序递减:由硬件规定,按以下次序递减: 上电复位或外部上电复位或外部RESET引脚复位;引脚复位; 时

4、钟监视复位时钟监视复位 看门狗复位看门狗复位 指令陷阱指令陷阱TRAP 软件中断软件中断SWI 外部中断外部中断XIRQ1112可屏蔽中断的优先级 系统复位后,系统复位后, 小于等于小于等于$FF12的中断向量激活状态。的中断向量激活状态。 默认优先级为默认优先级为1级,可以重新设置;级,可以重新设置; 非屏蔽中断、非屏蔽中断、SYS中断、伪中断不能被屏蔽;中断、伪中断不能被屏蔽; 当优先级相等时,当优先级相等时, 中断向量地址高的中断优先级高;中断向量地址高的中断优先级高; 13 2.7.3 中断处理过程、优先级与嵌套中断处理过程、优先级与嵌套 1.中断处理的基本流程中断处理的基本流程 (1

5、)中断请求及条件中断请求及条件 中断源中断源未被屏蔽未被屏蔽,且,且中断允许中断允许触发器被置位。触发器被置位。 (2)中断响应中断响应 一般在现行指令结束时检测中断请求,如中断响应条一般在现行指令结束时检测中断请求,如中断响应条件满足就进入中断响应周期,件满足就进入中断响应周期,自动进行自动进行3件事件事: n关中断,即将关中断,即将CCR的的I位置位置1,以屏蔽其它中断干扰。,以屏蔽其它中断干扰。n保护断点地址和标志寄存器保护断点地址和标志寄存器CCR的内容压入到堆栈,的内容压入到堆栈,即现场保护。即现场保护。 跳转到中断服务程序的入口地址,即将中断向量地址跳转到中断服务程序的入口地址,即

6、将中断向量地址的内容载入的内容载入PC。14154. 中断嵌套中断嵌套中断向量地址:中断向量地址: $FF00 TO $FFFF , 共共16*8=128个个.中断请求配置地址寄存器中断请求配置地址寄存器INT_CFADDR:高高4为可以写入为可以写入$0 TO $F , 共共16个地址。个地址。例如:例如: $E0 对应选择了对应选择了8个中断源个中断源 $FFE0 ,$FFE2 ,.$FFEE (TC7 TC0 计时器计时器)1617中断请求配置数据寄存器中断请求配置数据寄存器INT_CFDATA0 - 718INT_CFADDR = $E0INT_CFDATA7 设置设置TC7 优先级优

7、先级 . . . .INT_CFDATA0 设置设置TC0优先级优先级19Bit7Bit6Bit5 Bit4 Bit3 Bit2 Bit1 Bit0IRQEIRQEN0000007.3 中断程序设计中断程序设计 主程序中进行中断初始化,并执行占用时间较多的程序;主程序中进行中断初始化,并执行占用时间较多的程序; 中断服务程序要求简短、高效,条件苛刻时尽量使用汇编语言中断服务程序要求简短、高效,条件苛刻时尽量使用汇编语言; 在整个源程序的末尾声明中断子程序的所对应的矢量地址,格在整个源程序的末尾声明中断子程序的所对应的矢量地址,格式如例式如例; 以上所有源程序会通过以上所有源程序会通过IDE集成

8、开发环境自动进行编译、链集成开发环境自动进行编译、链接、定位,形成可执行机器代码。接、定位,形成可执行机器代码。20程序说明:程序说明:IRQ中断触发的中断触发的LED跑马灯跑马灯,LED接接B口,口, B口高口高4位输出低电平时点亮位输出低电平时点亮.MY_EXTENDED_RAM: SECTION FLAG EQU $2000 MyCode: SECTION ; code sectionmain:Entry: LDS #_SEG_END_SSTACK LDAA #$FF STAA DDRB ;设置设置B口为输出口为输出 LDAA #$C0 STAA IRQCR ;设置外部中断设置外部中断I

9、RQ使能使能, ;下降沿触发下降沿触发 CLI ;开中断开中断 LDAA #$FF STAA PORTB ;先全熄灭先全熄灭 LDAA #$00 STAA FLAG ;送停止标志送停止标志$00给给FLAG 21WAIT: CMPA FLAG BEQ WAIT ;FLAG为为$00等待等待 SEC ;C置置1 LDAA #$FE SHIFT: STAA PORTB ;亮亮1个灯个灯 BSR DELAY ;延时延时 ROLA ;循环左移循环左移 BRCLR PTP,#$01,CANCEL ;检测检测P口最低位的按键口最低位的按键 BRA SHIFT ;持续循环持续循环CANCEL: LDAA #$00 STAA FLAG ;送停止标志送停止标志$00给给FLAG BRA WAIT ;跳回等待跳回等待 22IRQ_ISR: ; 中断服务子程序中断服务子程序 LDAA #$FF STAA FLAG ; 送跑马标志送跑马标志$FF给给FLAG RTI ; 中断返回中断返回 DELAY: ; 子程序子程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论