0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CC2530(zigbee)入門開發(fā): 定時器使用實例

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-05-28 13:31 ? 次閱讀

第一章 定時器技術(shù)與CC2530時鐘源介紹

1. 定時器技術(shù)

定時器在單片機里也是屬于基本必備功能,非常常用;程序設(shè)計里,很多地方都需要使用到時間的概念,比如:使用定時器做一些輪詢檢測、精準(zhǔn)的延時函數(shù)、串口斷幀檢測、定時器發(fā)送、提供心跳包等等。

定時器在CPU內(nèi)部的實現(xiàn)原理:

定時器,是一種能夠?qū)?nèi)部時鐘信號或外部輸入信號進(jìn)行計數(shù),當(dāng)計數(shù)值達(dá)到設(shè)定要求時,向CPU提出中斷處理請求,從而實現(xiàn)定時或者計數(shù)功能的外設(shè)。

定時器的最基本工作原理是進(jìn)行計數(shù)。不管是定時器還是計數(shù)器,本質(zhì)上都是計數(shù)器,可以進(jìn)行加1(減1)計數(shù),每出現(xiàn)一個計數(shù)信號,計數(shù)器就會自動加1(自動減1),當(dāng)計數(shù)值從0變成最大值(或從最大值變成0)溢出時,定時就會向CPU提出中斷請求。

CC2530一共帶了5個定時器,其中定時器1是一個16位的定時器,屬于CC2530中功能最全的一個定時,在應(yīng)用開發(fā)中可以優(yōu)先使用。

根據(jù)文檔的介紹定時器1的工作模式有三種:

第一個模式是自由運行模式:計數(shù)器從0x0000開始,在每個活動 時鐘邊沿增加1,當(dāng)計數(shù)器達(dá)到0xFFFF時溢出,計數(shù)器重新載入0x0000并開始新一輪的遞增計數(shù)。該模式的計數(shù)周期是固定值0xFFFF,當(dāng)達(dá)到最終計數(shù) 值0xFFFF時,標(biāo)志位T1IF和OVFIF被設(shè)置。

第2個模式是模模式:計數(shù)器從0x0000開始,在每個活動時鐘邊 沿增加1,當(dāng)計數(shù)器達(dá)到T1CC0寄存器保存的值時 溢出,計數(shù)器又將從0x0000開始新一輪的遞增計數(shù), 模模式的計數(shù)周期可由用戶自行設(shè)定。

第3個模式是正計數(shù)/倒計數(shù)模式:計數(shù)器反復(fù)從0x0000開始,正計數(shù)到TICC0保存的最終計數(shù)值,然后再倒計數(shù)回0x0000,當(dāng)達(dá)到最終計數(shù)值時,標(biāo)志位T1IF和OVFIF被設(shè)置。
復(fù)制代碼

2. 時鐘源

CC2530一共有兩個可選的時鐘源,分別是內(nèi)部和外部。

1、內(nèi)部RC震蕩器(32KHz、16MHz)

2、外部石英晶振(32.768KHz、32MHz)

一般在無線收發(fā)中采用外部石英晶振,因為外部石英晶振比較穩(wěn)定,不受CPU內(nèi)部溫度影響。

3. 時鐘源的切換

用于判斷時鐘源是否切換成功

image.pngimage.pngimage.png

4. 定時器中斷

定時器有3種情況能產(chǎn)生中斷請求(幾乎所有單片機都是這樣的事件分類):

1. 計數(shù)器到達(dá)設(shè)定的計數(shù)值

2. 產(chǎn)生輸入捕獲事件

3. 產(chǎn)生輸出比較事件

第二章 相關(guān)寄存器

image.pngimage.pngimage.pngimage.pngimage.png

第三章: 示例代碼

定時器1共有5對T1CCxH和T1CCxL寄存器,分別對應(yīng)通道0到通道4。在使用定時器1的定時功能時,使用T1CC0H和T1CC0L兩個寄存器存放最大計數(shù)值的高8位和低8位。

下面編寫定時器1的使用示例代碼,開啟了定時器中斷。分別定時1秒和10秒,在中斷服務(wù)函數(shù)里進(jìn)行判斷,完成LED燈控制。

#include 

//定義LED燈的端口
#define LED1 P1_2
#define LED2 P1_3

/*
函數(shù)功能:LED燈IO口初始化
硬件連接:LED1-->P1_2 , LED2-->P1_3
*/
void LED_Init(void)
{
    P1DIR |=0x3<<2;  //配置P1_2、P1_3為輸出模式
    LED1 = 1;
    LED2 = 1;
}

/*延時200毫秒*/
void delay200ms(void)   //誤差 -0.125us
{
    unsigned char a,b,c;
    for(c=95;c>0;c--)
        for(b=181;b>0;b--)
            for(a=14;a>0;a--);
}


/*===============定時器1初始化函數(shù)==================*/
void Init_Timer1()
{
  T1CC0L = 0xd4;        //設(shè)置最大計數(shù)值的低8位
  T1CC0H = 0x30;        //設(shè)置最大計數(shù)值的高8位
  T1CCTL0 |= 0x04;      //開啟通道0的輸出比較模式
  T1IE = 1;             //使能定時器1中斷
  T1OVFIM = 1;          //使能定時器1溢出中斷
  EA = 1;               //使能總中斷
  T1CTL = 0x0e;         //分頻系數(shù)是128,模模式
}


unsigned char count = 0;  
/*================定時器1服務(wù)函數(shù)====================*/
#pragma vector = T1_VECTOR
__interrupt void Timer1_Sevice()
{
  T1STAT &= ~0x01;      //清除定時器1通道0中斷標(biāo)志
  count++;
  if(count%10 == 0)     //定時1秒到
  {
    LED1 = !LED1;
  }
  if(count == 100)      //定時10秒到
  {
    LED2 = !LED2;
    count = 0;
  }
}

/*主函數(shù)*/
void main(void)
{
    LED_Init();//初始化LED燈控制IO口
    Init_Timer1();
    while(1)          
    {  
                
    }
}

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6026

    文章

    44455

    瀏覽量

    630897
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3228

    瀏覽量

    114151
  • CC2530
    +關(guān)注

    關(guān)注

    19

    文章

    221

    瀏覽量

    57653
  • 時鐘源
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    15910
收藏 人收藏

    評論

    相關(guān)推薦

    CC2530有哪些定時器

    CC2530有哪些定時器?
    發(fā)表于 01-25 06:10

    【技術(shù)精選】嵌入式STM32原創(chuàng)征文活動精選文章

    CC2530(zigbee)入門開發(fā): 看門狗C2530(zigbee)入門開發(fā): 低功耗模式
    發(fā)表于 07-27 18:26

    基于CC2530芯片_zigbee基礎(chǔ)實驗

    zigbee基礎(chǔ)實驗,基于CC2530芯片
    發(fā)表于 12-11 10:48 ?48次下載

    CC2530 定時器T1的使用

    CC2530定時器T1的使用,多看看原理圖。
    發(fā)表于 04-26 10:41 ?0次下載

    基于CC2530ZigBee協(xié)調(diào)器節(jié)點設(shè)計

    本文給出了基于TI新一代芯片CC2530ZigBee協(xié)調(diào)器節(jié)點設(shè)計方法,該方法選用TICC2591作為射頻前端芯片。
    發(fā)表于 01-05 15:25 ?4.9w次閱讀
    基于<b class='flag-5'>CC2530</b>的<b class='flag-5'>ZigBee</b>協(xié)調(diào)器節(jié)點設(shè)計

    如何使用ZigBee TI ZStack CC2530 2.5搭建開發(fā)環(huán)境

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用ZigBee TI ZStack CC2530 2.5搭建開發(fā)環(huán)境。
    發(fā)表于 05-10 18:14 ?25次下載
    如何使用<b class='flag-5'>ZigBee</b> TI ZStack <b class='flag-5'>CC2530</b> 2.5搭建<b class='flag-5'>開發(fā)</b>環(huán)境

    基于zigbee CC2530和環(huán)境光傳感器實現(xiàn)照度計的設(shè)計

    本項目是一個基于zigbee CC2530的照度計,傳感器使用的是TI的環(huán)境光傳感器OPT3001。成果如上圖所示,關(guān)于OPT3001傳感器硬件電路設(shè)計,可參考《基于ZigBee
    的頭像 發(fā)表于 02-03 07:03 ?7755次閱讀
    基于<b class='flag-5'>zigbee</b> <b class='flag-5'>CC2530</b>和環(huán)境光傳感器實現(xiàn)照度計的設(shè)計

    cc2530 睡眠定時器串口顯示

    功能描述cc2530 睡眠定時器串口顯示//第12次次課 (睡眠定時器方式喚醒)//體會1:切換系統(tǒng)主時鐘16MHz和32MHz//體會2:當(dāng)串口波特率比較高時候(19200),亂碼多,降低后
    發(fā)表于 11-25 10:21 ?22次下載
    <b class='flag-5'>cc2530</b> 睡眠<b class='flag-5'>定時器</b>串口顯示

    CC2530定時器3

    CC2530定時器3完成對LED1周期為2s控制首先大家需要了解的是CC2530有4個定時器,分別是,定時器1~4和睡眠
    發(fā)表于 11-29 18:51 ?9次下載
    <b class='flag-5'>CC2530</b><b class='flag-5'>定時器</b>3

    CC2530定時器1使能

    CC2530定時器1CC2530有5個定時器定時器1,定時器2,
    發(fā)表于 11-29 20:06 ?6次下載
    <b class='flag-5'>CC2530</b><b class='flag-5'>定時器</b>1使能

    cc2530學(xué)習(xí)筆記一

    cc2530學(xué)習(xí)筆記一使用cc2530定時器一的模模式來產(chǎn)生pwm波。計數(shù)寄存器T1CC0的值確定pwm波周期,比較寄存器T1CCn(T1CCnH和T1CCnL)確定占空比。(關(guān)于
    發(fā)表于 11-29 20:21 ?6次下載
    <b class='flag-5'>cc2530</b>學(xué)習(xí)筆記一

    基于CC2530ZigBee通信網(wǎng)的應(yīng)用設(shè)計.pdf

    基于CC2530ZigBee通信網(wǎng)的應(yīng)用設(shè)計.pdf
    發(fā)表于 12-15 18:17 ?23次下載

    CC2530查詢方式使用定時器

      實驗?zāi)康?   1)、通過實驗掌握 CC2530 芯片 GPIO 的配置方法   2)、掌握 Led 驅(qū)動電路及開關(guān) Led 的原理   3)、掌握定時器 T1 的配置與使用
    發(fā)表于 04-11 15:35 ?3次下載

    CC2530(zigbee)入門開發(fā): 安裝IAR開發(fā)環(huán)境

    CC2530本身是一個51單片機內(nèi)核,開發(fā)過51的搞起來非常容易,也就是多了一個無線射頻部分;如果不使用無線射頻功能,那么就和一個正常的51單片機一樣。要進(jìn)行CC2530的軟件開發(fā),需
    的頭像 發(fā)表于 05-28 13:38 ?1.1w次閱讀
    <b class='flag-5'>CC2530</b>(<b class='flag-5'>zigbee</b>)<b class='flag-5'>入門開發(fā)</b>: 安裝IAR<b class='flag-5'>開發(fā)</b>環(huán)境

    基于CC2530ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于CC2530ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計.pdf》資料免費下載
    發(fā)表于 10-26 09:34 ?3次下載
    基于<b class='flag-5'>CC2530</b>的<b class='flag-5'>ZigBee</b>通信網(wǎng)絡(luò)的應(yīng)用設(shè)計