其他分享
首页 > 其他分享> > CC2530定时器应用----随记

CC2530定时器应用----随记

作者:互联网

                                                                                  关于CC2530定时器1和定时器3的使用

一般如果题目中出现有一个现象在持续进行并且会伴随其他的现象出现,这时候就应该考虑定时器的使用了,2530中的定时器有5个,但是常用的就两个定时器1和定时器3,它们代表了两种不同的定时器,定时器1是一个16位定时器,而定时器3是一个8位定时器,但是使用时没有太大的差别。

在使用过程中定时器的使用方法主要有两种,一种是中断方式,另一种是查询方式,查询相关的中断标志位是否被置1,从而确定是否发生了一次定时。

谈起定时器,首先想到的是定时器模式的配置问题,一般视问题而定,2530的工作模式选择共有3种,正/倒计数模式,模模式,自由运行模式。

三种模式中的重点内容:

正/倒计数模式下—>达到T1CC0中的最终计数值后会 跳回0x00 同时标志位T1IF和OVFIF被设置

模模式下—>计数器达到最终的T1CC0后会重新计数 计数周期由用户设定
使用模模式必须打开通道0的输出比较模式

自由运行模式—> 最终的值为 0xFFFF 计数周期也固定为0xFFFF 达到最大计数后标志位T1IF和OVFIF被设置
相关具体的定义可以问度娘,,这里不再详述。

在使用定时器的时候最关心的是有关定时器的配置问题,16位和8位定时器的配置还是有区别的:

16位定时器的配置:
①查询方式:
查询方式下一般使用的是自由模式,即从0x0000到0xFFFF反复计数
T1CTL = 0x0d; // 选择分频系数为128分频,自动重装载模式
T1STAT = 0X21; //开启定时器1的通道0
主程序中会反复查询IRCON(中断未决)是否被置位来确定是否定时器定时到,到一次程序后面会清除一次
可设置一个变量用于统计次数,来一次的时间大约为1s(128分频下)

②中断方式:
定时器在使用过程中通常为了考虑不占用主线程考虑使用中断的方式,,,16位定时器在配置中断方式下会使用下面技巧:
•注意不会使用自由运行模式
•注意先填充T1CC0(这里是定时器1)寄存器
•注意常使用模模式,并且注意打开通道0的输出比较模式
•注意打开中断标志位T1OVFIM
•注意打开总中断和分中断开关 EA T1IE
•注意中断向量为T1_VECTOR (定时器1)
•注意在中断中清除通道标志位 T1STAT &= ~0X01;

8位定时器的配置:
①查询方式: (自由运行模式)
八位的查询方式是在主程序中进行和16位一样的操作,仅仅是将16位的IRCON寄存器改变为里面的T3IF,如果判断IRCON也是可以的,但是如果同时出现定时器1和定时器3就不能使用IRCON的判断方法了。

②中断方式:
•中断向量为T3_VECTOR
•使用中断方式的配置方法和定时器1的配置相似,因为是8位定时器所以T3CTL寄存器集成了很多的操作内容
•除此之外只需打开T3IE 和 EA 即可!
•中断中将IRCON标志位清除

以上仅仅是相关内容的随记,不建议用于入门和深入探讨CC2530使用。

有问题请加QQ: 2490446413

标签:定时器,16,中断,模式,计数,CC2530,使用,随记
来源: https://blog.csdn.net/qq_43858783/article/details/99682286