zigbee學習之路(六):Time3(查詢方式)


一.前言

      通過上次的學習,相信大家對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是否溢出。

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM