飞思卡尔MC9S12X PIT模块
今天带着大家学习了解下飞思卡尔MC9S12XS PID模块。
PIT模块概述
周期性中断定时器(Periodic Interrupt Timer,PIT)模块是一组24位的定时器,由8位微定时器和16位定时器共同组成,该模块一般用来触发外围模块或者唤醒周期性中断。PIT是一个模数递减计数器,首先给计数寄存器设定一个初值,每经过一个总线时钟,8位微定时计数器做1次减1操作,当8位微定时计数器自减为0时,触发被控端16位定时计数器做1次减1操作,以此类推,当16位定时计数器超时(即自减为0)时,触发对应中断。确定的总线时钟通过计数器自减可实现定时器功能。
MC9S12XS128的PIT模块
PIT模块结构
PIT模块是由两级24位定时器(2个8位递减计数器和4个16位递减计数器)结构和一个中断/触发接口组成。16位定时器的时钟由2个可选的微定时基准提供,微定时基准的时钟由8位模数递减计数器产生。每个16位定时器都通过置位PIT复用寄存器PITMUX中的PMUX0~3来连接微定时基准0或微定时基准1。
PIT模块具有以下基本特征:
PIT模块主要由状态、控制和数据寄存器,两级结构的24位定时器(2个8位递减计数器和4个16位递减计数器)和1个中断/触发接口组成。
PIT工作原理
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)/fBus MC9S12XS128的PIT模块共有28个寄存器,其中10个是系统保留寄存器。PIT模块的内存映射表如表10-1所示,表中给出了这些寄存器的地址、用途和访问权限。对于每个寄存器,所列的地址是绝对地址,每个寄存器的绝对地址是PIT模块的基本地址与每个寄存器地址偏移量之和,PIT模块基本地址是0x0340。
下面一起来看看,飞思卡尔MC9S12XS128 PIT驱动,包括PIT驱动初始化、PIT中断函数
PIT驱动初始化主要包括:设置当前通道的8位计数器以及16位计数器、使能计数器模块、使能PIT中断。
微信公众号内有其他嵌入式学习经验分享。需要朋友们可以关注下微信公众号
如有相关嵌入式学习问题或疑问,欢迎在微信公众号留言.