嵌入式-第5章 异常处理课件_第1页
嵌入式-第5章 异常处理课件_第2页
嵌入式-第5章 异常处理课件_第3页
嵌入式-第5章 异常处理课件_第4页
嵌入式-第5章 异常处理课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

异常处理复位和中断章节介绍

教学内容本章介绍MC9S12DG128的复位和中断

教学目标掌握MC9S12DG128的复位种类掌握MC9S12DG128的中断源掌握MC9S12DG128的中断响应方式掌握MC9S12DG128的中断程序编写方法一、引言 正常情况下,单片机以有序的方式相应程序的执行,以明确的获取—解码—执行顺序处理各种指令。 可能发生的异常会打破这种时间的顺序流。将一个正常程序流的中断归为一个异常。异常可进一步分为中断和复位。二、复位

上电复位(Power-OnReset)

外部复位(ExternalHardwareReset)

计算机工作正常(ComputerOperatingProperly)复位

时钟监控(CrystalMonitor)复位二、复位—上电复位由VDD引脚的正跳变初始化

8192E-clock延时以保证晶振稳定。VDDCPUCLKDATABUS/ADDRESSBUSIRESET8192ECLK

CyclesVFPPPV-VECTORFETCHF-FREECYCLEP-PROGRAMFETCHFFFEFFFE1stOpcode2ndOpcode3rdOpcode128ECLK

Cycles64ECLK

Cycles二、复位—外部复位没有延时保证晶振稳定。上电复位和RESET引脚复位共用一个复位向量$FFFE~$FFFF。64ECLKCYCLES32ECLKCYCLESCPUCLKDATABUS/ADDRESSBUSRESETIRESET96EClocksSAMPLEPINFFFEFFFE1stOpcode2ndOpcode3ndOpcode不能使用简单RC复位电路!!二、复位—外部复位完整的复位电路简单复位电路MC34064/MC33064二、复位—时钟监控复位PLLCTL—CRGPLL控制寄存器($003A)CRG=ClockandResetGenerationmoduleCME——ClockMonitorEnable1=Monitorisenabled0=MonitorisdisabledSCME——Self-Clock-ModeEnable1=SCMisenabled0=SCMisdisabled二、复位—COP复位COPCTL-CRGCOP控制寄存器($003C)WCOP-WindowCOPMode1=WindowCOPoperation0=NormalCOPoperationCR[2:0] ——COP看门狗定时器超时时间间隔三、中断

不可屏蔽中断XIRQ非法指令陷阱软件中断指令

可屏蔽中断三、中断—软件中断

SWI实质上是一条指令,但其执行过程与中断相同,即通过中断矢量确定目标地址,中断矢量为$FFF6~$FFF7,它自动保存MCU的寄存器和返回地址,最后必须通过RTI指令返回。三、中断—非法指令陷阱

MCU正常工作时,每次取址得到的都是由汇编或编译程序生成的有效操作码,MCU能够正确解释并执行它们,但当受到干扰或系统出现混乱时,可能得到无法识别的操作码,即非法指令,这时MCU自动产生一次中断,中断矢量地址为$FFF8~$FFF9。三、中断—XIRQ

XIRQ是非屏蔽中断引脚,无论MCU处于哪种运行状态,该引脚一旦被拉成低电平,MCU执行完当前指令后,都会响应该中断,中断矢量为$FFF4~$FFF5。 该中断一般用于系统掉电、硬件故障等重要场合,当MCU处于等待或暂停模式时,该中断将唤醒MCU。三、中断—中断堆栈顺序中断响应前,堆栈必须有效,即堆栈指针SP必须指向一个有效的RAM区,而且堆栈的大小必须不少于9个字节。三、中断—中断向量表三、中断—中断向量表(续)三、中断—INTCRINTCR—中断控制寄存器($001E)IRQE-InterruptSelectEdgeSensitive1=IRQPINisconfiguredfornegativeedge0=IRQPINisconfiguredforlevelsensitiveIRQEN-ExternalIRQEnable1=IRQPINisconnectedtointerruptlogic0=IRQPINisdisconnectedfrominterruptlogic三、中断—HPRIOHPRIO—高优先级设定寄存器($001F) 该寄存器用于将某个可屏蔽中断的优先级“推进”为可屏蔽中断的最高可能中断。复位后该寄存器默认值为$F2,则IRQ($FFF2,$FFF3)中断在可屏蔽中断中的优先级最高。HCS12默认中断处理机制运行运行运行等待运行等待中断A中断B程序低优先级高优先级中断A请求中断B请求等待人人平等在可屏蔽中断服务程序中清除I运行运行运行等待运行运行等待中断A中断B程序低优先级高优先级中断B请求中断B被挂起中断A请求长幼不分采用中断优先处理机制运行运行等待运行运行等待中断A中断B程序低优先级高优先级中断A请求中断B请求中断B返回运行等级森严优先机制—两级例如:中断向量地址$FFF0–$FFF1为低优先级其他的中断为高优先级在$FFF0–$FFF1中断服务程序中,EnableInterrupts(I位清零)其他的中断包括自己都可以在中断服务程序执行时,被响应在其他的中断服务程序中,I位不清零(默认)只有当前中断服务程序执行完后,才能响应其他的中断请求当同时有多个中断源请求中断时,中断向量地址最靠近$FFFF的,将会首先被响应三、中断—中断程序编写方法1、在main.c中利用语句“EnableInterrupts;”清除I标志位。2、在xxx.prm中加入语句“VECTORADDRESS0xNNNN

YYYYY”,其中0xNNNN表示中断矢量入口地址,YYYYY表示中断服务程序名称。3、在主程序中编写中断服务子程序:

#pragmaCODE_SEG__NEAR_SEGNON_BANKED interruptvoidYYYYY(void)

温馨提示

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

评论

0/150

提交评论