ZigBee基础实验(四)--定时器3、定时器4

1、综述

  定时器3和定时器4是两个8位定时器。 每个计时器都有两个独立的capture/compare通道,每个通道每个通道都使用一个输入/输出。

  特点:

· 两个捕获/比较通道
· 设置、清除或切换输出比较
· 时钟预定标器除以1、2、4、8、16、32、64、128(分频)
· 在每个捕获/比较和终端计数事件中生成的中断请求
· DMA触发函数

 

2、8位定时计数

  #如何设置周期# 定时器3和定时器4所有功能都是基于8位定时计数器的。计数器在每个时钟边沿递增或递减。活动时钟边沿的周期首先可以通过寄存器CLKCONCMD.TICKSPD[2:0]来设定,更细的分频可以通过设置TxCTL.DIV[2:0]寄存器 (where x refers to the timer number, 3 or 4)。The counter operates as either a free-running counter, a down counter, a modulo counter or an up/down counter(自由运行计数器,倒计数器,模计数器,或正/倒计数器)。

  #如何读取计数器的值# It is possible to read the 8-bit counter value through the SFR register TxCNT, where x refers to the timer number, 3 or 4.

  #停止和开始控制# 清除和暂停定时器是通过TxCTL控制寄存器来实现的。 The counter is started when a 1 is written to TxCTL.START. If a 0 is written to TxCTL.START, 保留在当前值。

 

3、定时器3/定时器4模式控制

  通常,控制寄存器TxCTL用于控制计时器操作。

 

3.1 Free-Running Mode(自由计数模式)

  在此模式,定时器从0x00开始计时,每次上升沿递增。当值达到0xFF时,定时器被重置为0x00并继续计数。当最终达到0xFF(例如:发生一次溢出),中断标志位TIMIF.TxOVFIF被置1。如果设置了相应的中断屏蔽位TxCTL.OVFIM为1,就会产生一个中断请求。自由运行模式可以用于产生独立的时间间隔和输出信号频率。

 

3.2 Down Mode(倒计数模式)

  在倒计数模式,定时器启动之后,计数器载入TxCC0 的内容。然后计数器倒计时,直到0x00。当达到0x00时,设置标志TIMIF.TxOVFIF。如果设置了相应的中断屏蔽位TxCTL.OVFIM,就产生一个中断请求。定时器倒计数模式一般用于需要事件超时间隔的应用程序。

 

3.3 Modulo Mode(模模式)

  当定时器运行在模模式,8 位计数器在0x00 启动,每个活动时钟边沿递增。当计数器达到寄存器TxCC0所含的最终计数值时,计数器复位到0x00,并继续递增。当发生这个事件时,设置标志IMIF.TxOVFIF 。如果设置了相应的中断屏蔽位TxCTL.OVFIM,就产生一个中断请求。模模式可以用于周期不是0xFF 的应用程序。

 

3.4 Up/Down Mode(正/倒计数模式)

  在正/倒计数定时器模式下,计数器反复从0x00 开始正计数,直到达到TxCC0 所含的值,然后计数器倒计数,直到达到0x00。这个定时器模式用于需要对称输出脉冲,且周期不是0xFF 的应用程序。因此它允许中心对齐的PWM 输出应用程序的实现。

  注意:通过写入TxCTL.CLR 清除计数器也会复位计数方向,即从0x00 模式正计数!!!

 

  这四种模式其实区别不大,自由模式是从0x00到0xFF,然后再从0x00到0xFF;倒计数模式是从设定值(TxCC0)开始倒着计数,直到0x00;模模式则是从0x00->TxCC0,然后再从0x00继续重复之前的循环;正倒计数模式和模模式不同之处是当达到TxCC0之后,而是从TxCC0倒着计数到0x00。

 

4、通道模式控制

  对于通道0 和1,每个通道的模式是由控制和状态寄存器TxCCTLn 设置的,其中n 是通道号码0 或1。设置包括捕获和比较模式。

 

5、输入捕获模式

  当一个通道配置为一个输入捕获通道,通道相关的I/O 引脚配置为一个输入。定时器启动之后,输入引脚上的一个上升沿、下降沿或任何边沿都会触发一个捕获,即捕获8 位计数器内容到相关的捕获寄存器中。因此,定时器能够捕获一个外部事件发生的时间。

  注意:在定时器使用一个I/O 引脚之前,所需的I/O 引脚必须配置为一个定时器3/定时器4 外设引脚。

  通道输入引脚与内部系统时钟是同步的。因此,输入引脚上的脉冲的最小持续时间必须大于系统时钟周期。通道n 的8 位捕获寄存器的内容从寄存器T3CCn/T4CCn 中读出。当发生一个捕获,对应实际通道的中断标志就被设置。这是TIMIF.TxCHnIF。如果相应的中断屏蔽位TxCCTLn.IM 被设置,就产生一个中断请求。

  插一句:这个输入捕获在设计汽车倒车雷达——多路超声波测距时很有用,一旦外部超声波接收部分的滤波电路产生一个电平变化都会被捕获到时间点,用来计算距离。

 

6、输出比较模式

  在输出比较模式下,与该通道相关的I/O 引脚必须设置为输出。定时器启动之后,the content of the counter is compared with the contents of channel compare register TxCC0n。如果比较寄存器等于计数器的内容,根据比较输出模式TxCCTL.CMP1:0 的设置,输出引脚被设置1、复位0或切换。注意当运行在一个给定的比较输出模式下,输出引脚上的所有边沿都是无故障运行的。

  对于简单的PWM使用,输出比较模式4和5是首选。

  编写比较寄存器TxCC0或TxCC1对输出比较值没有影响,直到计数器值为0x00。

  当一个比较发生时, 实际通道的相应的中断标志位就会被设置。该中断标志位即:TIMIF.TxCHnIF。如果相应的中断屏蔽位TxCCTLn.IM被设置了,那么就会产生中断请求。(CC2530的中断请求产生目前来看似乎都需要设置相应的中断屏蔽位!)


  一个比较输出的引脚被初始化为表6-1中列出的值:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值