zigbee學習之路(五):定時器1(查詢方式)

一.前言函數

     今天,咱們來學習幾乎全部單片機都有的功能,定時器的使用,定時器對單片機來講是至關重要的,有了它,單片機就能夠進行一些複雜的工做。學習

二.原理與分析測試

    談到定時器的控制,咱們最早想到的是要給它賦初值和選擇工做模式吧,下面我帶你們熟悉一下cc2530中的定時器寄存器。ui

如上圖所見,DIV寄存器用來肯定定時器運行一次所需的時間,MODE用來選擇定時器的工做模式。blog

定時器中斷的標誌位,有中斷髮生時,置爲1it

三.程序io

#include <ioCC2530.h>原理

#define uint unsigned int定時器

#define uchar unsigned char程序

//定義控制LED燈的端口

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

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

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

//函數聲明

void Delayms(uint xms);  //延時函數

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

void InitT1(void);              //初始化定時器T1

/*********  函 數 名  : main  功能描述  : Timer1測試(Timer1查詢方式的使用)  輸入參數  : NONE   輸出參數  : NONE  返 回 值  : NONE ***************/

void main(void)

{     uchar count=0;        

InitLed();  //LED1_IO初始化   

  InitT1();           //Timer1初始化        

while(1)   

  {        

if(IRCON>0)    //查詢溢出標誌       

  {             IRCON=0;            

if((++count)==1)      //溢出一次約爲0.5s         

    {                 count=0;               

  LED1 = !LED1;        //LED1取反               

  LED2 = !LED2;                

LED3 = !LED3;             }      

   }     } }

/********** 函 數 名  : Delayms  功能描述  : 毫秒延時  輸入參數  : xms:延時時間,如 i=xms 即延時i毫秒  輸出參數  : none  返 回 值  : none ******************/

void Delayms(uint xms)  

{    

uint i,j;    

for(i=xms;i>0;i--)     

for(j=587;j>0;j--); }

/************************  函 數 名  : InitLed  功能描述  : LED_IO初始化函數  輸入參數  : NONE   輸出參數  : NONE  返 回 值  : NONE *****************/ void InitLed(void)

{     P1DIR |= 0xff;  //P1端口定義爲輸出   

  LED1 = 1;       //LED燈初始化熄滅    

LED2 = 1;   

  LED3 = 1; }

/************  函 數 名  : InitT1  功能描述  : Timer1初始化函數  輸入參數  : NONE   輸出參數  : NONE  返 回 值  : NONE **************/

void InitT1(void)       

{     T1CTL = 0x0d;   //128分頻;

自由運行,從0x0000到0xFFFF反覆計數 }

 四.總結

     經過本次實驗,相信你們已經基本瞭解定時器1的使用了,須要注意的是IRCON這個寄存器,主函數裏經過它來判判定時器是否溢出。

相關文章
相關標籤/搜索