手把手教你写S12XS128程序(18)--Timer模块介绍2

IC 通道组

       IC 通道组由四个标准的缓冲通道 IC0-IC3 和四个非缓冲通道 IC4-IC7 组成, 两部分的基本功能都是捕捉外部事件发生的时刻,但是缓冲通道除了 ICOC 寄存器 TCn 外,还设有保持寄存器 TCnH,此外还在入口设置了延迟计数器,用来提高抗干扰能力。非缓冲通道没有保持寄存器,入口也没有延迟计数器,但每个通道入口设置了一个 2 输入端的多路器,事件触发信号可以是来自本通道的输入引脚 PORTn,也可以是来自其关联通道 PORT(n-4)的延迟计数器输出,使用更 加灵活。当延迟功能有效时,输入引脚检测到一个有效的边沿后,延迟计数器开 始对 P 时钟(模块时钟)进行计数,当到达设定的计数值后,延迟计数器在其输出 端有条件地产生一个脉冲,这个条件就是延迟前后的引脚电平相反。这样可以避免对窄输入脉冲做出反应。延迟计数结束后,计数器自动清除。输入信号两个有 效边沿之间的持续时间必须大于设定的延迟时间。

 

    在 ECT 中,所有 IC 通道均设置了覆盖保护功能,可以通过寄存器 ICOVW设置是否允许某个通道用新的捕捉结果覆盖上一个结果。

    对于缓冲的 IC 通道 PT0-PT3,还具有锁存与队列两种工作方式。在锁存方 式下,每个有效的引脚事件只将自由定时器的值放入捕捉寄存器 TCn,而 TCn 到保持寄存器 TCnH 的传送必须依赖递减模数计数器回 0 或者其他强制锁存命令 才能实现,这时 IC 的工作情形与第 6 章的 TIM 模块相似。在队列方式下( 7-2) TCn TCnH 形成了一个类似先进先出的队列,每个捕捉结果从 TCn 进入,然 后随着下一个捕捉结果的到来移入 TCnH,程序可以从 TCnH 取得结果,然而这 个队列是开放的,即程序也可以直接从 TCn 取得捕捉结果。队列方式为 CPU 供了充分的响应时间。

    由于 PAC0-3 IC0-3 共享相同的引脚,而且共享入口的逻辑,因此在两种 方式下,PAI IC 都可以同时工作,对同一引脚进行记录,前者记录脉冲或者 边沿的数量,后者记录具体的时刻。

  

模数递减计数器

       16 位递减模数计数器(MDC)可以用作时钟基准,产生周期性的中断请求, 也可用于将 IC 寄存器和脉冲累加器的值锁存到各自的保持寄存器中。锁存动作 可以通过程序设定为周期性的或一次性的。MDC 的时钟频率可通过独立的定标 器设定,内部设有定时常数寄存器,可以实现自动重装载,但 MDC 的常数寄存 器与 MDC 计数器使用相同的地址,加载时通过特殊的时序实现。

    每当 MDC 0 时,将在给定的时间段内控制贮和 PAI 寄存器的内容向各自 的缓冲寄存器传输。反映了 MDC ICPAI 系统中的作用。

 

脉冲累加器

    脉冲累加器由 4 8 位的通道 PAC0-PAC3 组成,可以通过级联形成两个 16 位通道 PACAPACB,它可以统计输入引脚上出现的有效边沿的数量,也可以统计有效电平出现的累计时间。各个通道的 8 位保持寄存器是与 4 个缓冲 IC 道相关联的,它们共享边沿检测与延迟电路。当 IC 工作在两种不同的队列方式 时, PAC 保持寄存器也处于不同的工作状态,在锁存方式下,PCnH 的加载依 MDC 计数器或者强制命令实现,而在队列方式下,则依靠 IC 通道的 TCnH 读命令。可见在 ECT 模块下, IC PAI 的工作联系更加紧密。

 

    此外,脉冲累加器还有饱和记忆功能,当 8 位的脉冲累加器计数超过$FF 记忆保持,而不回滚到 0,这时,计数值$FF 意味着计数已经达到或超过 255 如不需要,该功能可以关闭。这可以用来监视某个通道的计数值是否已经达到预 定的目标值。

 

    值得注意的是,PAClPAC0 级联后,输入引脚为 PT0,而 PAC3PAC2 联后,输入引脚并不是 PT2,而是 PT7,这样可以与那些无 ECT MCU 保持一 致性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值