本实验实现通过CC2530的定时器1(16位)查询方式控制LED1以1S的周期性闪烁,此实验使用的三个寄存器T1CTL(定时器1控制寄存器),T1STAT(定时器1状态寄存器),IRCON。

有关CC2530的GPIO基本知识、普通GPIO操作有关寄存器的介绍、IAR Embedded Workbench IDE软件使用:TI CC2530基础实验(普通GPIO操作——点亮led灯)

电路原理图

寄存器分析

1、定时器1控制寄存器

定时器1的T1CTL寄存器下的模式分析

自由运行模式】:
在自由运行操作模式下,计数器从0x0000开始,每个活动时钟边沿增加1。当计数器达到0xFFFF(溢出)后,计数器重新载入0x0000,继续递增它的值,如下图所示。当达到最终计数值0xFFFF,设置标志IRCON.T1IF和T1STAT.OVFIF。如果设置了相应的中断屏蔽位TIMIF.OVFIM以及IEN1.T1EN,将产生一个中断请求。自由运行模式可以用于产生独立的时间间隔,输出信号频率
模模式】:

当定时器运行在模模式,16位计数器从0x0000开始,每个活动时钟边沿增加1。当计数器达到T1CC0(溢出),寄存器T1CC0H:T1CC0L保存的最终计数值,计数器将复位到0x0000,并继续递增。如果定时器开始于T1CC0以上的一个值,当达到最终计数值(0xFFFF)时,设置标志IRCON.T1IF和T1CTL.OVFIF。如果设置了相应的中断屏蔽位TIMIF.OVFIM以及IEN1.T1EN,将产生一个中断请求。模模式可以用于周期不是0xFFFF的应用程序。计数器的操作展示如下图:

正计数/倒计数模式】:

在正计数/倒计数模式,计数器反复从0x0000开始,正计数直达到T1CC0H:T1CC0L保存值。然后计数器将倒计数指导0x0000,如下图所示。这个定时器用于周期必须是对称输出脉冲而不是0xFFF的应用程序,因此允许中心对齐的PWM输出应用的实现。在正计数/倒计数模式,当达到最终计数值时,设置标志IRCON.T1IF和T1CTL.OVFIF。如果设置了相应的中断屏蔽位TIMIF.OVFIM以及IEN1.T1EN,将产生一个中断请求。

2、定时器1状态寄存器

3、中断标志4寄存器

程序——定时器1采用自由运行模式

#include <ioCC2530.h>/************************************* 程序说明:LED1以1S的周期性闪烁***********************************/#define LED1 P1_0/********************************************************* * 函数描述:初始化LED1* 备注:系统不配置工作时钟时使用内部 RC 振荡器,即16MHz*********************************************************/
void LED1Init(void)
{P1SEL &= ~0x01;  //功能:普通I/OP1DIR |= 0x01;   //方向:输出LED1 = 1;        //使其属于灭状态
}/*********************************** * 函数描述:定时器1初始化* 设置:分频、运行模式**********************************/
void T1Init(void)
{T1CTL |= 0x0c;     //设置为128分频T1CTL |= 0x01;     //设置为自由运行模式,从0x0000到0xFFFF反复计数
}void main()
{unsigned char count = 0;//用来记录定时器溢出次数LED1Init();T1Init();for (;;){
#if 1if ((T1STAT & 0x20) > 0)//判断T1STAT的bit5{T1STAT &= ~0x20;if (++count == 1){count = 0;LED1 = !LED1;}}
#else if ((IRCON & 0x02) > 0)//判断IRCON的bit1{IRCON &= ~0x02;//清除中断标志IRCON = 0;if (++count == 1){count = 0;LED1 = !LED1;}}
#endif}
}

系统在不配置 工作频率时默认为2分频,即32M/2=16M,所以定时器每次溢出时T=1/(16/128)*65536≈0.5s,其中128是设置定时器1的分频,65536是0x0000~0xFFFF总共递增次数,所以总时间Ta=T*count=0.5*1=0.5s切换1次状态,这样看起来才是1S删除1次。

注意:每创建一个新工程都要配置IAR(做基础实验),TI CC2530基础实验(普通GPIO操作——点亮led灯)也有IAR相关配置步骤

总结:

定时器1在采用自由运行模式从0x0000计数开始,到0xFFFF溢出,其当定时器1采用128分频,在默认的工作频率下,一次溢出约为0.5s。

定时器1查询方式是通过判断T1STAT.OVFIF和IRCON.T1IF是否置1来判断定时器是否溢出。

TI CC2530基础实验(定时器1查询方式——自由运行模式)相关推荐

  1. CC2530————通过定时器T1查询方式控制LED1周期性闪烁(模模式)

    CC2530----通过定时器T1查询方式控制LED1周期性闪烁(模模式) 宏定义与函数声明 初始化 主函数 宏定义与函数声明 /*********************************** ...

  2. CC2530基础实验:(8)串口通讯-发送字符串控制LED

     目录 前言 一.实验相关电路图 二.实验相关理论与寄存器 1.并行通信与串行通信 2.URAT 3.同步通信与异步通信 4.外设I/O 5.CC2530 的串口通信模块 6.相关寄存器 三.源码分析 ...

  3. 用定时器T0查询方式P0口8位控制LED闪烁

    #include<reg52.h> #define uchar unsigned char #define uint unsigned int void main (void) { uch ...

  4. 用定时器T0查询方式P0口8位控制LED闪烁 T1查询方式P1口8位控制LED闪烁

    //用定时器T0查询方式P0口8位控制LED闪烁 T1查询方式P1口8位控制LED闪烁 #include<reg52.h>        //  包含52单片机寄存器定义的头文件 #def ...

  5. K210基础实验—定时器

    K210基础实验-定时器 ZTFR开发板 定时器 构造函数 测试代码 ZTFR开发板 定时器 硬件定时器,可以用来定时触发任务或者处理任务,设定时间到了后可以触发中断(调用回调函数),精度比软件定时器 ...

  6. CC2530基础实验四 串口通信

    一.任务要求 编写程序实现实验板定期向PC机串口发送字符串"Hello ! I am CC2530 .\n".实验板开机后按照设定的时间间隔,不断地向PC及发送字符串,报告自己的状 ...

  7. CC2530基础实验:(1)按键控制LED跑马灯

    文章目录 前言 一.实验相关电路图 二.实验相关寄存器 三.源码分析 前言 本实验用于学习CC2530芯片GPIO 的配置方法,Led 驱动电路及开关 Led 的原理,按键的使用,实现简单的人机交互. ...

  8. CC2530基础实验:(11)系统睡眠唤醒--定时器唤醒

     目录 前言 一.实验相关电路图 二.实验相关理论与寄存器 三.源码分析 前言 1) 为什么要睡眠? Zigbee的特点就是远距离低功耗的无线传输设备,节点模块闲时可以 进入睡眠模式,在需要传输数据时 ...

  9. CC2530基础实验:(2)外部中断控制LED亮灭

    目录 前言 一.实验相关电路图 二.实验相关理论与寄存器 1.中断相关的基础概念 2.CC2530 的中断系统 3.CC2530 的中断处理函数编写方法 4.CC2530 的外部中断 三.源码分析 前 ...

最新文章

  1. OpenCASCADE绘制测试线束:拓扑命令之Making the touching shapes connected
  2. java调用存储过程之环境测试
  3. avs 中国音视频标准DRA 中音频标准及应用
  4. 37signals为何砍掉中层?个人点评,高素质人才队伍工作,靠的是全体发挥综合能力,而不是靠......
  5. 学计算机的人都会CAD制图吗,CAD到底该如何学习?
  6. 信息学奥赛一本通(1177:奇数单增序列)——比较排序
  7. jQuery框架总体分析
  8. 迁移solaris ufs根文件系统至zfs根文件系统
  9. 用DISKGEN恢复硬盘数据
  10. 比python更精简的语言,两行代码抓取淘宝/京东平台的商品数据--Uibot
  11. 小白看完都学会了!Jetpack-MVVM-高频提问和解答,面试建议
  12. php 网站克隆,如何快速克隆一个网站
  13. 解决网页上不能直接复制文字的问题
  14. tf.ones_like()函数用法详解(附代码理解)
  15. 响铃:丁磊造“网易美学”,是社区进化,还是包抄内容创业
  16. 微信开发五之微信红包开发
  17. 惊恐,还真有大神把地府后台管理系统做出来了,“阎王爷”疯狂点
  18. MATLAB铁轨检测+异物识别
  19. Matplotlib画图之调整字体大小
  20. Linux pxe 安装

热门文章

  1. 荣耀magic2 鸿蒙,麒麟980加持 荣耀Magic 2还要用石墨烯技术
  2. 在电脑插上电源充电情况下开机 自动进入bios setup utility
  3. 关于黑客,距离一个程序员有多远?
  4. 教大家怎么识别苹果手机真假
  5. 华为面试改革,加强考察编程,难度大增!
  6. 我的番茄工作法使用原则
  7. AMD Ryzen 1700k 使用 VMware Workstation 14 Pro 安装 MacOS 10.11.15
  8. 快速阅读——《技能篇》
  9. redis基础入门及Python中的简单使用
  10. 详情页返回列表内容缓存及定位实现