您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第10章 MC9S12XS128周期性中断定时器模块及其应用实例
《MC9S12XS单片机原理及嵌入式系统开发》MC9S12XS单片机原理及嵌入式系统开发合肥工业大学张阳,吴晔,滕勤Email:yzhang0615@163.com,wuye@ialab.hfut.edu.cn,tengqin7348@126.comTEL:13966717615,13505612773《MC9S12XS单片机原理及嵌入式系统开发》第10章MC9S12XS128周期性中断定时器模块及其应用实例PIT模块概述PIT模块结构和工作原理PIT模块寄存器及设置PIT模块应用实例智能车系统中PIT模块的应用《MC9S12XS单片机原理及嵌入式系统开发》10.1PIT模块概述周期性中断定时器(PeriodicInterruptTimer,PIT)模块是一组24位的定时器,由8位微定时器和16位定时器共同组成,该模块一般用来触发外围模块或者唤醒周期性中断。PIT是一个模数递减计数器,首先给计数寄存器设定一个初值,每经过一个总线时钟,8位微定时计数器做1次减1操作,当8位微定时计数器自减为0时,触发被控端16位定时计数器做1次减1操作,以此类推,当16位定时计数器超时(即自减为0)时,触发对应中断。确定的总线时钟通过计数器自减可实现定时器功能。《MC9S12XS单片机原理及嵌入式系统开发》10.2PIT模块结构和工作原理MC9S12XS128的PIT模块结构框图如图10.1所示。10.2.1PIT模块结构《MC9S12XS单片机原理及嵌入式系统开发》10.2PIT模块结构和工作原理由图10.1可知,PIT模块是由两级24位定时器(2个8位递减计数器和4个16位递减计数器)结构和一个中断/触发接口组成。16位定时器的时钟由2个可选的微定时基准提供,微定时基准的时钟由8位模数递减计数器产生。每个16位定时器都通过置位PIT复用寄存器PITMUX中的PMUX0~3来连接微定时基准0或微定时基准1。10.2.1PIT模块结构《MC9S12XS单片机原理及嵌入式系统开发》10.2PIT模块结构和工作原理PIT模块具有以下基本特征:4个独立的具有超时周期功能的模数递减计数器;超时周期可编程为总线时钟周期的1~224倍,超时时间等于m×n倍的总线时钟周期(1≤m≤256,1≤n≤65536);每个定时器独立使能;4个超时中断;4个触发外围模块的超时触发输出信号;可配置定时器起始通道。10.2.1PIT模块结构《MC9S12XS单片机原理及嵌入式系统开发》10.2PIT模块结构和工作原理MC9S12XS128的PIT模块详细功能框图如图10.2所示。PIT模块主要由状态、控制和数据寄存器,两级结构的24位定时器(2个8位递减计数器和4个16位递减计数器)和1个中断/触发接口组成。10.2.2PIT模块工作原理《MC9S12XS单片机原理及嵌入式系统开发》10.2PIT模块结构和工作原理16位定时器的时钟由2个可选的微时间基准提供,微时间基准的时钟由8位模数递减计数器产生。每个16位定时器都通过设置PIT复用寄存器(PITMUX)中的PMUX0~3确定使用微时间基准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.2PIT模块工作原理《MC9S12XS单片机原理及嵌入式系统开发》10.2PIT模块结构和工作原理读取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模块有四路硬件触发信号PITTRIG0~3,对应于四个定时器通道。四路触发信号也可使能其他功能模块,例如实现ATD连续转换模式功能。10.2.2PIT模块工作原理《MC9S12XS单片机原理及嵌入式系统开发》10.2PIT模块结构和工作原理当定时器通道超时时,相应的PTF标志位置1,同时相应的外部触发信号PITTRIG触发上升沿信号,触发信号需要的最小超时周期为两个总线时钟。装载寄存器PITLD=0x0001和微定时装载寄存器PITMTLD=0x0002进行相关标志设置,强制装载的触发时序和重启时序如图10.3所示。10.2.2PIT模块工作原理《MC9S12XS单片机原理及嵌入式系统开发》10.2PIT模块结构和工作原理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.2PIT模块工作原理《MC9S12XS单片机原理及嵌入式系统开发》10.3PIT模块寄存器及设置MC9S12XS128的PIT模块共有28个寄存器,其中10个是系统保留寄存器。PIT模块的内存映射表如表10-1所示,表中给出了这些寄存器的地址、用途和访问权限。对于每个寄存器,所列的地址是绝对地址,每个寄存器的绝对地址是PIT模块的基本地址与每个寄存器地址偏移量之和,PIT模块基本地址是0x0340。《MC9S12XS单片机原理及嵌入式系统开发》10.3PIT模块寄存器及设置《MC9S12XS单片机原理及嵌入式系统开发》10.3PIT模块寄存器及设置10.3.1PIT控制和强制装载微定时寄存器(PITCFLMT)PIT控制和强制装载微定时寄存器(PITControlandForceLoadMicroTimerRegister,PITCFLMT)用来使能PIT模块、冻结PIT模块、控制功耗、设置PIT工作模式,并强制装载微定时器的初始值,如图10.4所示。《MC9S12XS单片机原理及嵌入式系统开发》10.3PIT模块寄存器及设置10.3.1PIT控制和强制装载微定时寄存器(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模块停止计数。PFLMT1~PFLMT0:PIT微定时器1和PIT微定时器0强制装载位。如果相应的微定时器激活且PIT模块使能(PITE=1)时,PFLMT=1,则相应的8位微定时器的装载寄存器值将立即装载到8位微定时器的递减计数器。写0操作无效;读取这2位,总是返回0。注意:强制装载微定时器值会影响到使用该微定时基准的所有定时器通道。《MC9S12XS单片机原理及嵌入式系统开发》10.3PIT模块寄存器及设置10.3.2PIT强制装载定时寄存器(PITFLT)PIT强制装载定时寄存器(PITForceLoadTimerRegister,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.3PIT模块寄存器及设置10.3.3PIT通道使能寄存器(PITCE)PIT通道使能寄存器(PITChannelEnableRegister,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.3PIT模块寄存器及设置10.3.4PIT复用寄存器(PITMUX)PIT复用寄存器(PITMultiplexRegister,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计数;1表示相应的16位定时器使用微定时基准1计数。《MC9S12XS单片机原理及嵌入式系统开发》10.3PIT模块寄存器及设置10.3.5PIT中断使能寄存器(PITINTE)PIT中断使能寄存器(PITInterruptEnableRegister,PITINTE),用来使能PIT定时器3、PIT定时器2、PIT定时器1、PIT定时器0的超时中断,如图10.8所示。PINTE3、PINTE2、PINTE1、PINTE0:PIT定时器
本文标题:第10章 MC9S12XS128周期性中断定时器模块及其应用实例
链接地址:https://www.777doc.com/doc-5855984 .html