一.前言

通过上次的学习,相信大家对cc2530单片机的定时器的使用有了一定的了解,今天我们来介绍定时器3的使用,为什么介绍定时器3呢,因为它和定时器4功能是差不多的,所以学会定时器3,就基本掌握了cc2530定时器的使用。

二.原理分析

我们要使用定时器3,就要先配置控制它的寄存器T3CTL,下面给出寄存器的介绍

跟定时器3有关的还有IRCON这个寄存器,下面给出介绍

之前定时器1的查询,是直接访问IRCON寄存器所进行的,这次我们要通过标志位T3IF来进行查询。

三.程序

#include <ioCC2530.h>

#define uint unsigned int

#define uchar unsigned char

//定义控制LED1灯的端口

#define LED1 P1_0      //LED1为P1_0端口控制

#define LED2 P1_1      //LED2为P1_1端口控制

#define LED3 P1_4      //LED3为P1_4端口控制

//函数声明

void InitLed(void);    //初始化LED端口

void InitT3(void);     //初始化定时器T3

/********  函 数 名  : main  功能描述  : Timer3测试(Timer3查询方式的使用)  输入参数  : NONE   输出参数  : NONE  返 回 值  : NONE *****/

void main(void)

{

uchar count=0;

InitLed();  //LED_IO初始化     I

nitT3();           //Timer3初始化

while(1)

{

if(T3IF>0)    //查询溢出标志

{

T3IF=0;

if((++count)==254)      //溢出一次约为0.5s

{                 count=0;

LED1 = ~LED1;        //LED1取反

LED2 = ~LED2;

LED3 = ~LED3;             }

}

} }

/*********  函 数 名  : InitLed  功能描述  : LED_IO初始化函数  输入参数  : NONE   输出参数  : NONE  返 回 值  : NONE *************/

void InitLed(void)

{     P1DIR |= 0xff;  //P1端口定义为输出

LED1 = 1;       //LED灯初始化熄灭

LED2 = 1;

LED3 = 1; }

/***********  函 数 名  : InitT3  功能描述  : Timer3初始化函数  输入参数  : NONE   输出参数  : NONE  返 回 值  : NONE ***/

void InitT3(void)

{     T3CTL = 0xF8;   //128分频;自由运行,从0x00到0xFF反复计数 }

四.分析与总结

本次的程序功能实现很简单,通过配置定时器,让led每隔1秒闪一次,通过T3IF寄存器来判断定时器3是否溢出。

zigbee学习之路(六):Time3(查询方式)的更多相关文章

  1. zigbee学习之路(五):定时器1(查询方式)

    一.前言 今天,我们来学习几乎所有单片机都有的功能,定时器的使用,定时器对单片机来说是相当重要的,有了它,单片机就可以进行一些复杂的工作. 二.原理与分析 谈到定时器的控制,我们最先想到的是要给它赋初 ...

  2. zigbee学习之路(七):定时器3(中断方式)

    一.前言 上次我们学习了了用定时器3进行查询方式来进行溢出判断,今天我们来换一种方式,用中断方式来检测和查询定时器3的溢出. 二.原理与分析 要使用定时器3,我们必须先要配置的是T3CTL,来把定时器 ...

  3. zigbee学习之路(四):按键控制(中断方式)

    一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...

  4. zigbee学习之路(十五):基于协议栈的按键实验

    一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BU ...

  5. zigbee学习之路(一):zigbee介绍

    一.前言 大家好,我是一名在校的大学生,最近对zigbee非常感兴趣,于是自己从网上买了一款秉火cc2530的zigbee开发板,想通过这个平台来和大家分享自己学习和研究的经历,下面就来简单的介绍下z ...

  6. IBatis.Net学习笔记五--常用的查询方式

    在项目开发过程中,查询占了很大的一个比重,一个框架的好坏也很多程度上取决于查询的灵活性和效率.在IBatis.Net中提供了方便的数据库查询方式. 在Dao代码部分主要有两种方式:1.查询结果为一个对 ...

  7. zigbee学习之路(十三):基于协议栈的Usart 实验

    一.前言 这次实验我们来学习基于zigbee的串口通信实验,揭开zigbee神秘的面纱,让大家可以用zigbee协议编制属于自己的程序,这次实验只是串口发送数据,并没有进行无线的数据传输,为的是使大家 ...

  8. zigbee学习之路(十二):zigbee协议原理介绍

    一.前言 从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack 是TI ZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T ...

  9. zigbee学习之路(十):串口(接收)

    一.前言 上次我们学习了串口的发送,今天我们要学习串口的接收,要实现的功能是接收电脑发来的数据,控制LED 灯闪烁,而且将收到的数据发回给电脑显示出来.而且要采用不占用cpu资源的中断. 二原理与分析 ...

随机推荐

  1. C# 在 vs2010 上开发 ActiveX 控件 【千辛万苦啊~】

    由于B/S项目中需要使用到读卡器的功能,但是由于厂家只有提供一个 读卡的dll,那么怎样能在客户端使用读卡器呢,那么进过一番查找,最总决定使用ActiveX 控件来做.由于是第一次接触到 Active ...

  2. HTTP协议 (五) 代理

    HTTP协议 (五) 代理 阅读目录 什么是代理服务器 Fiddler就是个典型的代理 代理作用一:FQ 代理作用二:匿名访问 代理作用三:通过代理上网 代理作用四:通过代理缓存,加快上网速度 代理作 ...

  3. javascript平时小例子④(setInterval使用2)

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>& ...

  4. vbox下Oracle Enterprise liunx5.4虚拟机安装10G RAC实验(四)

    接第3篇 http://www.cnblogs.com/myrunning/p/4003527.html 5.安装配置数据库 5.1安装数据库软件 5.2配置监听 5.3创建ASM磁盘 5.4创建服务 ...

  5. linux重新设定分区大小

    一.目的 在使用CentOS6.3版本Linux系统的时候,发现根目录(/)的空间不是很充足,而其他目录空间有很大的空闲,所以本文主要是针对现在已有的空间进行调整.首先,先来查看一下系统的空间分配情况 ...

  6. 未能加载文件或程序集“Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=30a [问题点数:40分,结帖人u010259408]

    未能加载文件或程序集“Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=30a [问题点数:40分,结帖人u01025 ...

  7. Linux vi编辑器的基本命令

    vi编辑器的文字说明 模式:命令模式,编辑模式,末行模式. 切换方式:命令模式→i→编辑模式,编辑模式→Esc→命令模式,命令模式→:→末行模式. 功能: 命令模式(Command Mode): 控制 ...

  8. 关于JAVA中的String的使用与连接(转)

    JAVA中的String连接性能 Java中的String是一个非常特殊的类,使它特殊的一个主要原因是:String是不可变的(immutable).           String的不可变性是Ja ...

  9. 【iCore3 双核心板_ uC/OS-III】例程六:信号量——共享资源

    实验指导书及代码包下载: http://pan.baidu.com/s/1milKoVA iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  10. cordova-sqlite-plugin常用数据库操作

    ionic项目需要做本地缓存,研究了一番,总结出了常用的数据库操作: 1.新建数据库,用angularJS+ionic: //声明一个数据库对象 var db = null; //事件devicere ...