zigbee学习之路(六):Time3(查询方式)

本文介绍了CC2530单片机定时器3的基本使用方法,包括寄存器配置、中断标志查询及LED闪烁示例程序。通过配置定时器3,实现了LED每秒闪烁一次的功能。

一.前言

      通过上次的学习,相信大家对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是否溢出。

     

转载于:https://www.cnblogs.com/sjsxk/p/5308081.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值