问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

cc2530定时器1 怎么配置? 有相关例程最好

发布网友 发布时间:2022-05-12 02:05

我来回答

1个回答

热心网友 时间:2023-11-03 02:54

cc2530中包含有1个睡眠定时器和3个普通定时器。本文主要记录自己对定时器1、3、4的理解,好记性不如烂笔头。

定时器1:

主要功能为:

1. 16位定时器

2. 五个捕获/比较功能

3. 自由运行、模模式或者正数/倒数计数操作

4. 时钟分频系数:1、8、32、128.

5. 在每个捕获/比较和最终计数上生成中断请求。

中断的分析和注意事项:

定时器1中能够产生中断的事件主要有以下三种:

1) 计数器达到最终计数值(溢出或者倒数计数回到零);

2) 输入捕获事件;

3) 输出比较事件;

以上三种中断事件的中断使能是如何设置?相应的中断标志又是什么?

使能定时器1的中断,要设置以下两地方:

1) 相应中断屏蔽位

2) IEN1.T1EN

相应的,中断屏蔽位为:

普通计数溢出事件的中断屏蔽位为:TIMIF.OVFIM(复位后默认为1,即使能)。

n个通道的输入捕获/输出比较事件的中断屏蔽位为:T1CCTLn.IM(复位后默认为1,即使能)。

产生中断后的中断标志位如下:

1)普通计数溢出事件的中断标志位:T1STAT.OVFIF。

2) n个通道的输入捕获/输出比较事件的中断标志位为:T1STAT.CHxIF。

3) IEN1.T1EN的中断标志为:IRCON.T1IF。(在调用中断服务程序时,需要手动清零)

定时器 1 中断相关设置

定时器 1 相关事件

使能中断

相应中断标志

中断屏蔽位

普通计数溢出事件

TIMIF.OVFIM

IEN1.T1EN

T1STAT.OVFIF

IRCON.T1IF

5 个通道输入捕获 / 输出比较事件

T1CCTLn.IM

IEN1.T1EN

T1STAT.CHxIF

IRCON.T1IF

应用场景一: 自由运行模式,计数器从0开始计数,到达0xFFFF时,溢出,设置标志,计数器载入0重新计数。

由于是普通定时器计数溢出事件,所以定时器的设置为:

1) 开启中断

TIMIF.OVFIM = 1;(上电默认为1,即使能)

IEN1.T1EN = 1;

2) 中断标志位

T1STAT.OVFIF

IRCON.T1IF(在调用中断服务程序时,需要手动清零)

应用场景二: 模模式,计数器从0开始计数,到达T1CC0L T1CC0H设置的比较值后,溢出,产生中断。(为了产生周期不为0xFFFF的应用程序)

使用模模式时,必须要开启通道0的输出比较功能,所以,此时不仅仅只是简单的中断溢出。主要的注意事项如下:

1) 模模式需要开启通道0的输出比较模式,否则计数器到了0xFFFF时,才会产生溢出中断,也就是说如果没有设置通道0的输出比较模式,计数器的值到了T1CC0L

T1CC0H设置的比较值后也不会产生溢出中断。

2) T1的模模式不是普通的溢出中断,和连续计数模式不同,它必须设置通道0的输出比较功能,使能中断时,也是使能通道0的输出比较中断屏蔽位。产生中断时的中断

标志也是通道0的输出比较中断标志,而不是计数溢出标志。

故定时器的使用设置为:

1) 开启中断

T1CCTL0.IM
= 1;

IEN1.T1EN = 1;

2) 中断标志位

IRCON.T1IF
( 在中断服务例程中需手动清零)

T1STAT.CH0I F

T1STAT.OVFIF
( 经调试,该标志位没有置1,依旧为0)

模模式例程:

// 定时器1模模式初始化

void halTimer1nit(uint16 cycles)
{
uint16 compareValue;
// 分频系数128,设置为模模式
T1CTL |= 0x0C;
compareValue = cycles*8;

// 设置比较值
T1CC0H = HI_UINT16(compareValue);
T1CC0L = LO_UINT16(compareValue);

// 设置通道0输出比较功能,开启相应中断
T1CCTL0.IM
= 1;
T1CCTL0 = 0x44;
// 清除中断标志位,关闭中断
T1STAT &= ~0x01; // T1STAT.CH1IF = 0
IEN1 &= ~0x02; // IEN1.T1EN = 0

}
// 定时器1模模式中断服务程序

#pragma vector = T1_VECTOR//定时器1
__interrupt void T1_ISR(void)
{

if(T1STAT.CH0IF)

// 产生中断

// 清除标志

T1STAT.CH0IF = 0;

IRCON.T1IF = 0;

// To Do...

}

定时器3和4的使用方法和定时器1类似。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 根据功能不同,8086标志位可分为哪两种标志 1800欧元值人民币多少 AVR中断屏蔽的问题 电话号码查询02082118945是广州哪个区的电话号码 1欧元等于多少人民币如题 谢谢了 AVR 中断屏蔽时 中断条件产生时 我知道不响应中断 但是中断标志位会置位吗 390欧元等于多少人民币 帮我想几个现在流行的谜语带答案,谢谢 鱼缸水清洁剂有没有保质期 Giulia启动键在方向盘上,拨片比手掌更大,意大利车就是这么疯狂 鱼缸里放多了水质清洁剂,鱼接连死亡,这是怎么回事啊,而且,快死的鱼嘴巴旁边有点溃烂的痕迹啊???! 宝马3系换阿尔法·罗密欧-Giulia,车主:感觉像是灵魂归位了 被微信主播拉黑了怎么举报 60公分的鱼缸净水剂要放多少? 鱼缸里有清洁剂,鱼会死么 阿尔法·罗密欧Giulia GTA/GTAm售价公布 售158万元 误把洗东西的清洁剂倒进鱼缸..这可怎么办? 阿尔法·罗密欧Giulia四叶草周冠宇特别版上市 售99.38万元 Giulia的真实油耗表现怎么样? Giulia的驾驶感受如何? 单片机的中断标志位是有什么作用? 关于清除S3C2440中断标志位的疑问 oppor9m和oppor9tm哪个价格贵 制定拼接屏方案需要注意什么? 转债转股 是什么意思 拼接屏画面显示方式有哪些? 银行卡挂失补办回来后以前的优盾还能不能用? 中国银行SIM卡注销了,SIM盾可以继续使用吗 中国银行SIM卡注销了SIM盾可以继续使用吗? 中国银行银行卡丢失,按原卡号补办新卡后,丢失的卡还能用吗? 中国银行卡补办后之前那些业务还能用吗? 中国银行卡掉了(开通了网银)动态口令还有用吗?我补办的话动态口令还可以用吗? 中国银行卡丢了又补办了原来的动态口令还有用吗 临床代表面试会问到的具体问题 怎么这个平板电脑连接不上无线网络? 克隆QQ空间的网址是什么 十里桃花万杨柳,中原无此好风光是古人谁的诗句 他朝若是同淋雪,此生也算共白头全诗出处是什么? 阅读下面的诗歌,然后回答问题(7分)塞外杂咏 林则徐天山万笏耸琼瑶,早我西行伴寂寥。 我与山灵相对笑, 七月的天山是按照什么写作手法