TI CC2530基礎實驗(定時器3中斷方式——自由運行模式)

來源:互聯網
上載者:User

標籤:cc2530   ti   定時器3   中斷方式   

本實驗實現通過CC2530的定時器3(8位)查詢方式控制LED1以1S的周期性閃爍,此實驗使用有關定時器3的2個寄存器T3CTL(定時器3控制寄存器),IEN1(中斷使能1寄存器)。

有關CC2530的GPIO基本知識、普通GPIO操作有關寄存器的介紹、IAR Embedded Workbench IDE軟體使用:TI CC2530基礎實驗(普通GPIO操作——點亮led燈)

原理圖:


寄存器分析:



程式:

#include <ioCC2530.h>/*********************************************** * 程式說明:T3中斷方式控制LED1以1S的周期性閃爍 **********************************************/#define LED1 P1_0unsigned char count = 0;//用來記錄定時器溢出次數/*********************************************************  * 函數描述:初始化LED1 * 備忘:系統不配置工作時鐘時使用內部 RC 振蕩器,即16MHz *********************************************************/void LED1Init(void){  P1SEL &= ~0x01;  //功能:普通I/O  P1DIR |= 0x01;   //方向:輸出  LED1 = 1;        //使其屬於滅狀態}/***********************************  * 函數描述:定時器3初始化 **********************************/ void T3Init(void){  EA = 1;              //不管三七二十一,先開啟總中斷  /*使能定時器3中斷*/  IEN1  |= 0x08;       //或T3IE = 1;  /*使能溢出中斷,預設是使能溢出中斷*/  T3CTL |= 0x08;      //查看T3CTL寄存器,需要使能溢出中斷    /*設定分頻、自由運行模式*/  T3CTL |= 0xE0;      //128分頻  T3CTL &= ~0x03;     //自由運行模式    /*設定好定時器3,開啟定時器3*/   T3CTL |= 0x10;      //查看T3CTL寄存器,需要啟動定時器}/***********************************  * 函數描述:定時器3中斷處理函數 **********************************/ #pragma vector = T3_VECTOR__interrupt void T3_ISR(void){  //IRCON = 0; //清中斷,似乎硬體幫我們將IRCON對應的中斷標誌位清除了  if (++count > 254)  {    count = 0;    LED1 = !LED1;  }}void main(){  LED1Init();  T3Init();  for (;;);}

其中定時器3中斷服務程式中的254是怎麼來的呢?

系統在不配置工作頻率時預設為2分頻,即16M=32M/2。1/(16M/128)*N = 0.5s(每隔0.5秒一次開,一次關,這樣看起來就像以1S周期性閃爍),得到 N = 65200,即而每次溢出遞增次數為256(0x00~0xFF),所有總共需要溢出的次數 = 65200/256 = 254.

注意:每建立一個新工程都要配置IAR(做基礎實驗),TI CC2530基礎實驗(普通GPIO操作——點亮led燈)也有IAR相關配置步驟


總結:

1、當系統不配置工作頻率時,即為16M工作頻率下,定時器每遞增需要時間為1/(16000000/128) = 8us。當採用自由運行模式下,每溢出一次需要時間為:2ms

2、定時器3採用中斷方式,初始化需要做的事情:1)開啟總中斷 EA = 1;  2)使能定時器3中斷   3)使能溢出中斷(預設使能)   4)設定分頻、運行模式    5)最後啟動定時器3 

TI CC2530基礎實驗(定時器3中斷方式——自由運行模式)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.