飞思卡尔MC9S12X PIT模块

今天带着大家学习了解下飞思卡尔MC9S12XS PID模块。

PIT模块概述

周期性中断定时器(Periodic Interrupt TimerPIT)模块是一组24位的定时器,由8位微定时器和16位定时器共同组成,该模块一般用来触发外围模块或者唤醒周期性中断。PIT是一个模数递减计数器,首先给计数寄存器设定一个初值,每经过一个总线时钟,8位微定时计数器做1次减1操作,当8位微定时计数器自减为0时,触发被控端16位定时计数器做1次减1操作,以此类推,当16位定时计数器超时(即自减为0)时,触发对应中断。确定的总线时钟通过计数器自减可实现定时器功能。

MC9S12XS128PIT模块


PIT模块结构

          PIT模块是由两级24位定时器(28位递减计数器和416位递减计数器)结构和一个中断/触发接口组成。16位定时器的时钟由2个可选的微定时基准提供,微定时基准的时钟由8位模数递减计数器产生。每个16位定时器都通过置位PIT复用寄存器PITMUX中的PMUX03来连接微定时基准0或微定时基准1

PIT模块具有以下基本特征:

l 4 个独立的具有超时周期功能的模数递减计数器;
l 超时 周期可编程为总线时钟周期的 1 224 倍,超时时间等于 m×n 倍的总线时钟周期( 1≤m≤256 1≤n≤65536 );
l 每个 定时器独立使能;
l 4 个超时中断;
l 4 个触发外围模块的超时触发输出信号;
l 配置定时器起始通道。


              PIT模块主要由状态、控制和数据寄存器,两级结构的24位定时器(28位递减计数器和416位递减计数器)和1个中断/触发接口组成。


PIT工作原理

     16位定时器的时钟由2个可选的微时间基准提供,微时间基准的时钟由8位模数递减计数器产生。每个16位定时器都通过设置PIT复用寄存器(PITMUX)中的PMUX03确定使用微时间基准0或基准1


如果PIT控制和强制装载微定时寄存器PITCFLMT中的PITE位置1,并且PIT通道使能寄存器PITCE中相应的PCE位置1,则该定时器通道使能。28位模数递减计数器可产生2个微时间基准,一旦微时间基准被定时器通道使能,就会启动相应的微定时器模数递减计数器,由PITMTLD0PITMTLD1寄存器确定装载初值。

当微定时模数递减计数器计数到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中断。

如需获取相关源码,请关注微信公众号“嵌入式软件开发学习圈”,
留言“飞思卡尔PIT”,即可免费获取相关学习资料。

微信公众号内有其他嵌入式学习经验分享。需要朋友们可以关注下微信公众号

如有相关嵌入式学习问题或疑问,欢迎在微信公众号留言.



  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值