飞思卡尔MC9S12XS TIME输入捕获

今天带着大家学习飞思卡尔MC9S12X  TIME模块中的输入捕获,TIME模块之前介绍过了在这里就不重复了。

首先先大家介绍下什么是输入捕获

输入捕捉
      输入捕捉 ( I nput C apture IC ) :通过捕获自由运行计数器的计数值来检测外部事件和记录选定的输入信号跳变边沿的时间。
      当外部事件发生或信号发生变化时,指定的输入捕捉通道对应的引脚上产生一个规定的跳变沿(上升沿或下降沿)。定时器输入通道根据相应引脚上的电平变化,将当前自由运行计数器中的计数值捕捉到通道寄存器中。
      如果此时允许输入捕捉中断,则产生一次输入捕捉中断申请,利用中断服务程序可读取通道计数器数值,获得事件发生的时刻或信号变化的时刻。

 原理如下图所示


TIME控制寄存器如下所示:


TIM模块的输入捕捉功能及寄存器设置

S12XS 系列 MCU TIM 具有 8 个输入捕捉 / 输出比较 (IC/OC) 通道 IOC0 IOC7 ,对应于端口 PT0 PT7 。由于输入捕捉与输出比较通道共享引脚、通道寄存器和中断逻辑,因此,每个通道同一时刻只能启用其中一个功能,可以通过设置定时器输入捕捉 / 输出比较选择寄存器 TIOS 中的 IOSn 位,选择输入捕捉 / 输出比较功能。


 TIM模块输入捕捉功能

输入捕捉功能通过捕获自由运行计数器来监视外部事件。
当通道设置为输入捕捉功能时,自由运行定时器启动后,边沿检测器开始监视引脚事件,一旦引脚电平出现设定的有效跳变,便将自由运行计数器寄存器 TCNT 的当前值捕捉到捕捉寄存器 TCn n=0 7 )。
有效跳变边沿可以是上升沿、下降沿或任意跳变,由定时器控制寄存器 TCTL3 TCTL4 中的 EDGxB EDGxA 位确定。
也可设置位 EDGxB:EDGxA =00 ,关闭边沿检测器,停止通道捕捉。

TIM模块输入捕捉功能

由于同步电路原因,引脚输入的最小脉宽要求大于 2 个总线时钟周期。
捕捉完成后,将置位主定时器中断标志寄存器 TFLG1 中的中断请求标志位 CnF ,如果定时器中断允许寄存器 TIE 中的中断允许位 CnI =1 ,且 CCR 寄存器中的控制位 I=1 ,则产生一次输入捕捉中断申请,转向 TCn 中断服务程序。
如果不采用中断方式响应引脚事件,可以置 CnI =0 ,通过软件查询标志位 CnF 来进行处理。各个 IC/OC 通道可以单独发出中断请求,或关闭中断。
事件处理完成后,通过向 TFLG1 寄存器的对应位写入 1 ,以清除标志 CnF
TIM 模块输入捕捉通道中断标志位 C0F C7F 的置位条件如图所示。 


v S12XS 系列 MCU 8 路输入捕捉通道都不带缓冲寄存器,也没有覆盖控制寄存器,因此,发生一次输入捕捉事件后, TC 寄存器会立即写入新值。
v 如果发生新的捕捉事件时,上一次的数值还没有被读出,上一次捕捉的值将被新值所覆盖。
v 另外, TIM 的输入捕捉没有延迟计数器,不可以通过延迟给定的时间间隔产生输出脉冲的方法来避免窄脉宽的影响。
v S12XS 系列 MCU IC 模块事件触发信号只能来自于本通道的输入引脚。
v 当输入引脚出现有效事件时,引脚电平变化时刻主定时器的计数值将被捕获到相应通道的捕捉寄存器中。


具体的寄存器的配置,我们就直接上代码,根据数据手册进行配置





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

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

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


  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值