分享

cc2530手册翻译(定时器3和定时器4)

 xingwangjy 2014-12-24

1、概述

       定时器3和定时器4是两个8位定时器,每个定时器有两个独立的捕获/比较通道,每一通道使用一个I/O引脚。

       定时器3/4有以下特点:

       (1)、两个捕获/比较通道;

       (2)、设置,清除或切换输出比较;

       (3)、每时钟可以被以下分频:1、2、4、8、16、32、64、128;

       (4)、在每次捕获/比较和最终计数事件发生时产生中断请求;

       (5)、DMA触发功能。

 

2、8位定时器的计数器

       定时器3/4的所有定时器功能都是基于主要的8位计数器基础上的。计数器在每一个活动时钟边沿递增或递减。活动时钟边沿的周期由寄存器CLKCONCMD.TICKSPD[2:0]来定义,且通过设置TxCTL.DIV[2:0]来进一步划分(x为3或4)。计数器操作模式有:自由运行模式、倒计数器模式、模计数器模式和正/倒计数器模式。

       可以通过读SFR寄存器TxCNT(x为3或4)来取得8位定时器的值。

       通过设置TxCTL来清除和终止计数器。设置TxCTL.START为1启动计数器,设置TxCTL.START为0时,计数器停留在它的当前值。

 

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

       一般上,控制寄存器TxCTL被用来控制定时器模式。

3.1、自由运行模式

       计数器从0X00开始,在每一个活动时钟边沿递增,当计数器到达0XFF时,计数器重置为0X00并继续递增。当最终计数器值到达0XFF时(如发生溢出),中断标志位TIMIF.TxOVFIF将被置1。如已设置相应中断屏蔽位TxCTL.OVFIM,产生中断请求。自由模式可以用于产生独立的时间间隔和输出信号频率。

3.2、倒模式

       在倒模式中,定时器启动后,计数器读取TxCC0中的值,并开始递减,当到达0X00,标志位TIMIF.TxOVFIF置1。如已设置相应中断屏蔽位TxCTL.OVFIM,产生中断请求。倒模式一般用于需要事件超时间隔的应用程序。

3.3、在正/倒定时器模式

在此模式中,计数器重复操作:从0X00递增到TxCC0里设置的值,然后递减到0X00。这个定时器模式用于需要对称输出脉冲,且周期不是0XFF的应用程序。因此它允许中心对齐的PWM输出应用程序的实现。

通过写入TxCTL.CLR清除计数器也会复位计数方向,即从0X00模式正计数。

 

4、通道模式控制

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

4.1、输入捕获模式

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

       注意:一个引脚被用于定时器之前,要求相应I/O引脚必须被配置位Timer 3/Timer 4的外设引脚。

       通道输入脚同步于内部系统时钟,因此,输入脚的脉冲最小持续时间要大于系统时钟周期。

       通道n的8位捕获寄存器的内容可以从寄存器T3CCn/T4CCn里读取。

       当发生捕获时,活动通道的相应中断标志位TIMIF.TxCHnIF被设置。如已设置中断掩码位TxCCTLn.IM,将会产生中断请求。

4.2、输出比较模式

       在输出比较模式中,与通道相关的I/O引脚要设置为输出。在定时器启动后,计数器的内容与此通道的比较寄存器TxCC0n中的内容比较;如相等,根据TxCCTL.CMP[1:0]的设置,输出引脚被设置、复位或转换。注意当运行在一个给定的比较输出模式下,输出引脚上的所有边沿都是无故障运行的。

       对于使用简单PWM,最好使用输出比较模式4和5。

       写入比较寄存器TxCC0或TxCC1的输出比较值无效,除非计数寄存器的值为0X00。

       当发生比较时,活动通道的相应中断标志位TIMIF.TxCHnIF被设置。如已设置中断掩码位TxCCTLn.IM,将会产生中断请求。

 

5、定时器3/定时器4中断

       每一个定时器都分配了一个中断向量,分别为T3和T4。当有以下定时器事件发生时便产生中断请求:

       (1)、计数器到达最终计数值;

       (2)、比较事件;

       (3)、捕获事件。

       SFR寄存器TIMIF包含定时器3和定时器4的所有中断标志。寄存器TIMIF.TxOVFIF和TIMIF.TxCHnIF包含2个最终计数值事件和4个通道比较事件。只有相应中断掩码位设置了,中断请求才会产生。如果有其他正在等待的中断,新中断产生之前相应的中断标志位必须被清除,同样,如果要产生新的中断请求,相应的的中断掩码位要设置。

 

6、定时器3和定时器4的DMA触发

       定时器3和定时器4都分别有2个DMA触发器,分别为:

       T3_CH0:定时器3通道0捕获/比较;

       T3_CH1:定时器3通道1捕获/比较;

T4_CH0:定时器4通道0捕获/比较;

T4_CH1:定时器4通道1捕获/比较。

 

7、定时器3和定时器4寄存器

TnCNT 定时器3/4计数器

端口

Bit位

名称

初始化

读/写

描述

T3CNT

7:0

CNT[7:0]

0X00

R

定时计数器字节

T4CNT

7:0

CNT[7:0]

0X00

R

定时计数器字节

 

T3CTL 定时器3控制

端口

Bit位

名称

初始化

读/写

描述

T3CTL

7:5

DIV[2:0]

000

R/W

预分频器值。产生有效时钟沿用于来自CLKCON.TICKSPD的定时器时钟如下:

000:震荡频率/1

001:震荡频率/2

010:震荡频率/4

011:震荡频率/8

100:震荡频率/16

101:震荡频率/32

110:震荡频率/64

111:震荡频率/128

4

START

0

R/W

启动定时器。正常运行时设置,暂停时清除。

3

OVFIM

1

R/W0

溢出中断屏蔽

0:禁止中断

1:使能中断

2

CLR

0

R0/W1

清除计数器。写1清除并重置计数器为0X00并初始化相关通道的所有输出引脚。只能读0。

1:0

MODE[1:0]

00

R/W

定时器3模式,

00:自由运行模式,从0X00到0XFF重复计数。

01:倒模式,从T3CC0到0X00计数。

10:模模式,从0X00到T3CC0重复计数。

11:正/倒模式,从0X00到T3CC0再到0X00重复计数。

T4CTL

7:5

DIV[2:0]

000

R/W

预分频器值。产生有效时钟沿用于来自CLKCON.TICKSPD的定时器时钟如下:

000:震荡频率/1

001:震荡频率/2

010:震荡频率/4

011:震荡频率/8

100:震荡频率/16

101:震荡频率/32

110:震荡频率/64

111:震荡频率/128

4

START

0

R/W

启动定时器。正常运行时设置,暂停时清除。

3

OVFIM

1

R/W0

溢出中断屏蔽

0:禁止中断

1:使能中断

2

CLR

0

R0/W1

清除计数器。写1清除并重置计数器为0X00并初始化相关通道的所有输出引脚。只能读0。

1:0

MODE[1:0]

00

R/W

定时器4模式,

00:自由运行模式,从0X00到0XFF重复计数。

01:倒模式,从T4CC0到0X00计数。

10:模模式,从0X00到T4CC0重复计数。

11:正/倒模式,从0X00到T4CC0再到0X00重复计数。

 

 

 

 

 

 

T3CCTLn/ T4CCTLn 定时器3/4通道0/1捕获/比较控制

端口

Bit位

名称

初始化

读/写

描述

T3CCTL0

7

--

0

R0

没使用

6

IM

1

R/W

通道0中断掩码

0:禁止中断

1:使能中断

5:3

CMP[2:0]

000

R/W

通道0比较输出模式选择,当定时器值等于T3CC0中的比较值时输出脚的操作:

000:发生比较时输出端置1

001:发生比较时输出端置0

010:发生比较时输出端翻转

011:上升沿比较输出设置,0清除

100:上升沿比较输出清除,0设置

101:发生比较时输出端置1,0XFF清除

110:发生比较时输出端置0,0X00设置

111:初始化输出引脚,CMP[2:0]不改变。

2

MODE

0

R/W

定时器3通道0模式选择

0:捕获模式

1:比较模式

1:0

CAP[1:0]

00

R/W

捕获模式选择

00:无捕获

01:上升边沿捕获

10:下降边沿捕获

11:所有边沿捕获

T3CCTL1

7

--

0

R0

没使用

6

IM

1

R/W

通道1中断掩码

0:禁止中断

1:使能中断

5:3

CMP[2:0]

000

R/W

通道1比较输出模式选择,当定时器值等于T3CC1中的比较值时输出脚的操作:

000:发生比较时输出端置1

001:发生比较时输出端置0

010:发生比较时输出端翻转

011:上升沿比较输出设置,0清除

100:上升沿比较输出清除,0设置

101:发生比较时输出端置1,0XFF清除

110:发生比较时输出端置0,0X00设置

111:初始化输出引脚,CMP[2:0]不改变。

2

MODE

0

R/W

定时器3通道1模式选择

0:捕获模式

1:比较模式

1:0

CAP[1:0]

00

R/W

捕获模式选择

00:无捕获

01:上升边沿捕获

10:下降边沿捕获

11:所有边沿捕获

T4CCTL0

7

--

0

R0

没使用

6

IM

1

R/W

通道0中断掩码

0:禁止中断

1:使能中断

5:3

CMP[2:0]

000

R/W

通道0比较输出模式选择,当定时器值等于T4CC0中的比较值时输出脚的操作:

000:发生比较时输出端置1

001:发生比较时输出端置0

010:发生比较时输出端翻转

011:上升沿比较输出设置,0清除

100:上升沿比较输出清除,0设置

101:发生比较时输出端置1,0XFF清除

110:发生比较时输出端置0,0X00设置

111:初始化输出引脚,CMP[2:0]不改变。

2

MODE

0

R/W

定时器4通道0模式选择

0:捕获模式

1:比较模式

1:0

CAP[1:0]

00

R/W

捕获模式选择

00:无捕获

01:上升边沿捕获

10:下降边沿捕获

11:所有边沿捕获

T4CCTL1

7

--

0

R0

没使用

6

IM

1

R/W

通道1中断掩码

0:禁止中断

1:使能中断

5:3

CMP[2:0]

000

R/W

通道1比较输出模式选择,当定时器值等于T4CC1中的比较值时输出脚的操作:

000:发生比较时输出端置1

001:发生比较时输出端置0

010:发生比较时输出端翻转

011:上升沿比较输出设置,0清除

100:上升沿比较输出清除,0设置

101:发生比较时输出端置1,0XFF清除

110:发生比较时输出端置0,0X00设置

111:初始化输出引脚,CMP[2:0]不改变。

2

MODE

0

R/W

定时器4通道1模式选择

0:捕获模式

1:比较模式

1:0

CAP[1:0]

00

R/W

捕获模式选择

00:无捕获

01:上升边沿捕获

10:下降边沿捕获

11:所有边沿捕获

 

TmCCn 定时器3/4通道0/1捕获/比较值

端口

Bit位

名称

初始化

读/写

描述

T3CC0

7:0

VAL[7:0]

0X00

R/W

定时器3通道0捕获/比较值。

T3CC1

7:0

VAL[7:0]

0X00

R/W

定时器3通道1捕获/比较值。

T4CC0

7:0

VAL[7:0]

0X00

R/W

定时器4通道0捕获/比较值。

T4CC1

7:0

VAL[7:0]

0X00

R/W

定时器4通道1捕获/比较值。

 

TIMIF:定时器1/3/4中断屏蔽/标志

端口

Bit位

名称

初始化

读/写

描述

TIMIF

7

---

0

R0

未使用

6

OVFIM

1

R/W

定时器1溢出中断屏蔽

5

T4CH1IF

0

R/W0

定时器4通道1中断标志

0:无中断未决

1:中断未决

4

T4CH0IF

0

R/W0

定时器4通道0中断标志

0:无中断未决

1:中断未决

3

T4OVFIF

0

R/W0

定时器4溢出中断标志

0:无中断未决

1:中断未决

2

T3CH1IF

0

R/W0

定时器3通道1中断标志

0:无中断未决

1:中断未决

1

T3CH0IF

0

R/W0

定时器3通道0中断标志

0:无中断未决

1:中断未决

0

T3OVFIF

0

R/W0

定时器3溢出中断标志

0:无中断未决

1:中断未决

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多