资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MC9S12XS单片机原理及嵌入式系统开发MC9S12XS单片机原理 及嵌入式系统开发合肥工业大学 张 阳,吴 晔,滕 勤 Email:yzhang0615163.com, wuyeialab.hfut.edu.cn, tengqin7348126.com TEL:13966717615,13505612773MC9S12XS单片机原理及嵌入式系统开发第10章 MC9S12XS128周期性中断定时器 模块及其应用实例 PIT模块概述 PIT模块结构和工作原理 PIT模块寄存器及设置 PIT模块应用实例 智能车系统中PIT模块的应用MC9S12XS单片机原理及嵌入式系统开发10.1 PIT模块概述周期性中断定时器(Periodic Interrupt Timer, PIT)模块是一组24位的定时器,由8位微定时器和 16位定时器共同组成,该模块一般用来触发外围模块 或者唤醒周期性中断。PIT是一个模数递减计数器, 首先给计数寄存器设定一个初值,每经过一个总线时 钟,8位微定时计数器做1次减1操作,当8位微定时计 数器自减为0时,触发被控端16位定时计数器做1次减 1操作,以此类推,当16位定时计数器超时(即自减 为0)时,触发对应中断。确定的总线时钟通过计数 器自减可实现定时器功能。MC9S12XS单片机原理及嵌入式系统开发10.2 PIT模块结构和工作原理MC9S12XS128的PIT模块结构框图如图10.1所示。10.2.1 PIT模块结构MC9S12XS单片机原理及嵌入式系统开发10.2 PIT模块结构和工作原理由图10.1可知,PIT模块是由两级24位定时器(2个8位递减计数 器和4个16位递减计数器)结构和一个中断/触发接口组成。16位定时 器的时钟由2个可选的微定时基准提供,微定时基准的时钟由8位模数 递减计数器产生。每个16位定时器都通过置位PIT复用寄存器PITMUX 中的PMUX03来连接微定时基准0或微定时基准1。10.2.1 PIT模块结构MC9S12XS单片机原理及嵌入式系统开发10.2 PIT模块结构和工作原理PIT模块具有以下基本特征: 4个独立的具有超时周期功能的模数递减计数器; 超时周期可编程为总线时钟周期的1224倍,超时时间等于mn倍的总线 时钟周期(1m256,1n65 536); 每个定时器独立使能; 4个超时中断; 4个触发外围模块的超时触发输出信号; 可配置定时器起始通道。10.2.1 PIT模块结构MC9S12XS单片机原理及嵌入式系统开发10.2 PIT模块结构和工作原理MC9S12XS128的PIT模块详细功能框图如图10.2所示。PIT模块 主要由状态、控制和数据寄存器,两级结构的24位定时器(2个8位递 减计数器和4个16位递减计数器)和1个中断/触发接口组成。10.2.2 PIT模块工作原理MC9S12XS单片机原理及嵌入式系统开发10.2 PIT模块结构和工作原理16位定时器的时钟由2个可选的微时间基准提供,微时间基准的 时钟由8位模数递减计数器产生。每个16位定时器都通过设置PIT复用 寄存器(PITMUX)中的PMUX03确定使用微时间基准0或基准1。 如果PIT控制和强制装载微定时寄存器PITCFLMT中的PITE位置1 ,并且PIT通道使能寄存器PITCE中相应的PCE位置1,则该定时器通 道使能。2个8位模数递减计数器可产生2个微时间基准,一旦微时间 基准被定时器通道使能,就会启动相应的微定时器模数递减计数器, 由PITMTLD0和PITMTLD1寄存器确定装载初值。当微定时模数递减 计数器计数到0时,PITMTLD寄存器将重新装载初值,同时相应的16 位模数递减计数器计数一个周期。当16位定时计数器和相应的8位微 定时计数器计数到0时,PITLD寄存器将重新装载初值,且相应的PIT 超时标志寄存器PITTF中的超时标志位PTF被置1。超时周期是定时装 载寄存器PITLD、微定时装载寄存器PITMTLD和总线时钟fBus的函数 :超时周期 = (PITMTLD + 1) (PITLD + 1)/fBus10.2.2 PIT模块工作原理MC9S12XS单片机原理及嵌入式系统开发10.2 PIT模块结构和工作原理读取PITCNT寄存器值可获取16位模数递减计数器的当前值,但微定时 递减计数器值不可读。 PIT控制和强制装载微定时寄存器PITCFLMT中相应的强制装载微定时 器位PFLMT写“1”操作,可重新启动8位微定时器。PIT强制装载定时寄存器 PITFLT中相应的强制装载定时器位PFLT写“1”操作,可重新启动16位定时 器。如果需要同时重新启动一组定时器和微定时器,只要向相应的PITCFLMT 寄存器和PITFLT寄存器写入16位数据设置相关的寄存器位即可。 每个超时事件都可触发中断服务请求。对于每个定时器通道,PIT中断 使能寄存器PITINTE中的PINTE位使能中断功能。当PIT超时标志寄存器 PITTF中的相应超时标志位PTF置1,且PINTE=1时,将产生中断服务请求。 PTF标志位通过写“1”清零。 注意:为了避免错误的中断请求发生,当PIT中断请求被挂起时,请务 必重新设置PITE位、PINTE位和PITCE位。 PIT模块有四路硬件触发信号PITTRIG03,对应于四个定时器通道。 四路触发信号也可使能其他功能模块,例如实现ATD连续转换模式功能。10.2.2 PIT模块工作原理MC9S12XS单片机原理及嵌入式系统开发10.2 PIT模块结构和工作原理当定时器通道超时时,相应的PTF标志位置1,同时相应的外部 触发信号PITTRIG触发上升沿信号,触发信号需要的最小超时周期为 两个总线时钟。装载寄存器PITLD = 0x0001和微定时装载寄存器 PITMTLD = 0x0002进行相关标志设置,强制装载的触发时序和重启 时序如图10.3所示。10.2.2 PIT模块工作原理MC9S12XS单片机原理及嵌入式系统开发10.2 PIT模块结构和工作原理PITCFLMT寄存器中的PITE位置1之前,需要先设置配置寄存器, 即需要在PITE位置1之前,写操作配置寄存器。 当PITCE寄存器中、PITINTE寄存器中和PITCFLMT寄存器中的位或 PITE位任意一位清零时,相应的PIT中断标志位清零。如果PIT中断请 求被挂起,那么可能会产生伪中断。下面推荐两种方法避免伪中断发 生: 只在中断服务子程序(ISR)中清除PIT中断标志位。当进入 中断服务子程序时,CCR寄存器中的I可屏蔽位自动置1。PIT位清零之 前,I可屏蔽位不能被清零。 使用SEI指令置位I可屏蔽位之后,PIT中断标志位才可清零, 然后使用CLI指令清零I可屏蔽位重新使能中断。 所有标志位通过写“1”清零,相应标志位可使用存储或移动指 令写“1”操作该标志位。不允许使用BSET指令,也不允许使用任何编 译成BSET指令的C语句,因为BSET指令是读-改-写指令。举例来说, MOVB #$01,PITTF,则实现了标志位0的清零。10.2.2 PIT模块工作原理MC9S12XS单片机原理及嵌入式系统开发10.3 PIT模块寄存器及设置MC9S12XS128的PIT模块共有28个寄存器,其中10个是系统保 留寄存器。PIT模块的内存映射表如表10-1所示,表中给出了这些寄 存器的地址、用途和访问权限。对于每个寄存器,所列的地址是绝对 地址,每个寄存器的绝对地址是PIT模块的基本地址与每个寄存器地 址偏移量之和,PIT模块基本地址是0x0340。MC9S12XS单片机原理及嵌入式系统开发10.3 PIT模块寄存器及设置MC9S12XS单片机原理及嵌入式系统开发10.3 PIT模块寄存器及设置10.3.1 PIT控制和强制装载微定时寄存器(PITCFLMT)PIT控制和强制装载微定时寄存器(PIT Control and Force Load Micro Timer Register,PITCFLMT)用来使能PIT模块、冻结PIT模 块、控制功耗、设置PIT工作模式,并强制装载微定时器的初始值,如 图10.4所示。MC9S12XS单片机原理及嵌入式系统开发10.3 PIT模块寄存器及设置10.3.1 PIT控制和强制装载微定时寄存器(PITCFLMT)PITE:PIT模块使能位。当PITE为0时,则禁止PIT模块功能,PIT超时标志寄存器 PITTF中的标志位清零。当置位PITE时,能够使能相应定时器位PCE,相应装载寄存器 开始向下递减计数。 0表示禁用PIT模块(低功耗模式); 1表示使用PIT模块。 PITSWAI:等待模式下PIT停止位。 0表示等待模式下,PIT模块正常运行; 1表示等待模式下,PIT模块停止产生时钟信号,冻结PIT模块。 PITFRZ:冻结模式下PIT计数器冻结位。冻结模式下,PITFRZ位确定PIT工作状 态。冻结模式下,断点调试时,该位冻结PIT计数器,可有效避免中断的发生。 0表示冻结模式下,PIT模块正常运行; 1表示冻结模式下,PIT模块停止计数。 PFLMT1PFLMT0:PIT微定时器1和PIT微定时器0强制装载位。如果相应的微定 时器激活且PIT模块使能(PITE=1)时,PFLMT=1,则相应的8位微定时器的装载寄存 器值将立即装载到8位微定时器的递减计数器。写0操作无效;读取这2位,总是返回0。 注意:强制装载微定时器值会影响到使用该微定时基准的所有定时器通道。MC9S12XS单片机原理及嵌入式系统开发10.3 PIT模块寄存器及设置10.3.2 PIT强制装载定时寄存器(PITFLT)PIT强制装载定时寄存器(PIT Force Load Timer Register, PITFLT),用来设置强制装载定时器的装载初值,如图10.5所示。PFLT3,PFLT2,PFLT1,PFLT0:PIT定时器3、PIT定时器2、 PIT定时器1、PIT定时器0的强制装载位。如果相应的定时器通道和PIT 模块均使能(PCE=1,PTIE=1),则PFLT位写1操作,相应的16位定 时器的装载寄存器值将装载到16位递减计数器,写0操作无效;读取这 4位,总是返回0。MC9S12XS单片机原理及嵌入式系统开发10.3 PIT模块寄存器及设置10.3.3 PIT通道使能寄存器(PITCE)PIT通道使能寄存器(PIT Channel Enable Register,PITCE), 用来使能PIT定时器3、PIT定时器2、PIT定时器1、PIT定时器0通道, 如图10.6所示。PCE3,PCE2,PCE1,PCE0:PIT定时器3、PIT定时器2、PIT 定时器1、PIT定时器0的通道使能位。如果PCE位清零,则禁用PIT通 道,PITTF寄存器中的相应标志位也会清零。当PCE位置1,且PIT模块 使能(PITE=1)时,则16位定时计数器将装载初始计数值,从该初始 值开始向下递减计数。 0表示禁用相应的PIT通道; 1表示使用相应的PIT通道。MC9S12XS单片机原理及嵌入式系统开发10.3 PIT模块寄存器及设置10.3.4 PIT复用寄存器(PITMUX)PIT复用寄存器(PIT Multiplex Register,PITMUX),用来选择 PIT定时器3、PIT定时器2、PIT定时器1、PIT定时器0通道的复用位, 如图10.7所示。PMUX3、PMUX2、PMUX1、PMUX0:PIT定时器3、PIT定时器 2、PIT定时器1、PIT定时器0的通道复用选择位。这些位选择相应的16 位定时器连接的是微定时基准1还是微定时基准0;修改PMUX位,则相 应的16位定时器将会立即切换微定时基准。 0表示相应的16位定时器使用微定时基准0计数;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号