- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实验三定时器实验
CITE-T-VC系列套件
一、实验目的
学习使用CC2530单片机定时器1基本设置和应用。
3
1
2
了解如何使用定时器实现定时以及在周期时间标上的扩展应用。
二、实验设备
三、实验相关知识介绍(1)
相关寄存器介绍
三、实验相关知识介绍(2)
T1CTL:定时器1的控制和状态位
位
名称
复位
R/W
描述
7:4
-
00000
R0
保留
3:2
DIV[1:0]
00
R/W
分频器划分值。产生主动的时钟边缘用来更新计数器,如下:
00:标记频率/1
01:标记频率/8
10:标记频率/32
11:标记频率/128
1:0
MODE[1:0]
00
R/W
选择定时1模式。定时器操作模式通过下列方式选择:
00:暂停运行
01:自由运行,从0x0000到0xFFFF反复计数。10:模,从0x0000到T1CC0反复计数。
11:正计数/倒计数,从0x0000到T1CC0反复计数并且从T1CC0倒计数到0x0000
三、实验相关知识介绍(3)
位
名称
复位
R/W
描述
7:6
-
0
R0
保留
5
OVFIF
0
R/W0
定时器1计数器溢出中断标志。当计数器在自由运行或模模式下达到最终计数值时设置,当在正/倒计数模式下达到零时倒计数。
4
CH4IF
0
R/W0
定时器1通道4中断标志。当通道4中断条件发生时设置。
3
CH3IF
0
R/W0
定时器1通道3中断标志。当通道3中断条件发生时设置。
2
CH2IF
0
R/W0
定时器1通道2中断标志。当通道2中断条件发生时设置。
1
CH1IF
0
R/W0
定时器1通道1中断标志。当通道1中断条件发生时设置。
0
CH0IF
0
R/W0
定时器1通道0中断标志。当通道0中断条件发生时设置。
T1STAT:定时器1状态
三、实验相关知识介绍(4)
位
名称
复位
R/W
描述
7
RFIRQ
0
R/W
当设置时,使用RF中断捕获,而不是常规捕获输入。
6
IM
1
R/W
通道0中断屏蔽,设置时使能中断请求。
5:3
CMP[2:0]
000
R/W
通道0比较模式选择。当定时器的值等于在T1CC0中的比较值,选择操作输出
000:在比较设置输出001:在比较清除输出
010:在比较切换输出
011:在向上比较设置输出,在0清除
100:在向上比较清除输出,在0设置
101:保留110:保留
111:初始化输出引脚。CMP[2:0]不变。
2
MODE
0
R/W
模式。选择定时器1通道0捕获或者比较模式
0:捕获模式1:比较模式
1:0
CAP[1:0]
00
R/W
通道0捕获模式选择
00:未捕获01:上升沿捕获
10:下降沿捕获11:所有沿捕获
T1CCTL0:定时器1通道0捕获/比较控制
三、实验相关知识介绍(5)
T1CC0H:定时器1通道0捕获/比较值高位
位
名称
复位
R/W
描述
7:0
T1CC0[7:0]
00
R/W
定时器1通道0捕获/比较值,低位字节。写到该寄存器的数据被存储到一个缓存中,但是不写入T1CC0[7:0],直到并同时后一次写T1CC0H生效
位
名称
复位
R/W
描述
7:0
T1CC0[15:8]
00
R/W
定时器1通道0捕获/比较值,高位字节。当T1CCTL0.MODE=1(比较模式)时写0到该寄存器导致T1CC0[15:0]更新写入值延迟到T1CNT=0x0000
T1CC0L:定时器1通道0捕获/比较值低位
四、实验内容
使用定时器1查询工作方式定时控制P0口LED4灯闪烁的频率。采用查询的方式等待定时时间的到达。
当定时时间到达时
LED4状态更改一次
五、程序流程图
系统初始化
设置定时器定时时间
定时时间到达?
定时时间到则根据灯的
状态将灯点亮或者关闭
Y
N
六、实验参考程序(1)
Time.c参考程序
voidTimer1Init(void){
T1CCTL0=0x44;
T1CC0L=0x24;
T1CC0H=0xF4;
T1CTL=0x0C;
}
voidTimer(void){
BYTEi;
T1CTL|=0x02;
while(1){
for(i=0;i2;i++){
while(!(T1STAT0x01));
T1STAT=~0x01;
}LED4=~LED4;
}
}
设置定时器1通道0中断屏蔽,
通道0比较模式
设
文档评论(0)