




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
單元四定時器計數(shù)器應用
2018-01-282定時器3實現(xiàn)LED周期性閃爍目錄1定時器1控制LED周期性閃爍
任務一定時器1控制LED周期性閃爍一、任務描述編寫程序使用CC2530單片機內(nèi)部定時器/計數(shù)器控制CC2530板上的LED1周期性閃爍。①通電后LED1每隔2s閃爍一次。②LED1每次閃爍點亮時間為0.5s。任務一定時器1控制LED周期性閃爍二、任務目標1.訓練目標①檢驗學生掌握CC2530單片機定時器/計數(shù)器1的工作原理。②檢驗學生掌握CC2530單片機定時器/計數(shù)器1的使用方法。③檢驗學生掌握CC2530單片機定時器/計數(shù)器1的中斷應用等技能。任務一定時器1控制LED周期性閃爍二、任務目標2.素養(yǎng)目標①培養(yǎng)學生在工作現(xiàn)場的6S意識和用電安全意識。②愛惜工具,注重場地整潔。③具備積極、主動的探索精神。任務一定時器1控制LED周期性閃爍三、相關知識定時器/計數(shù)器是嵌入式系統(tǒng)中的重要部件,凡是和時間相關的應用幾乎都離不開它。當計數(shù)器的輸入信號是固定周期的脈沖信號時,計數(shù)器就可以起定時作用,可看作定時器。定時器一般用Timer表示。任務一定時器1控制LED周期性閃爍三、相關知識1.定時器/計數(shù)器的作用與工作原理(1)定時器/計數(shù)器的作用圖4.1CPU與定時器/計數(shù)器交互任務一定時器1控制LED周期性閃爍三、相關知識1.定時器/計數(shù)器的作用與工作原理(1)定時器/計數(shù)器的作用1)定時器功能對規(guī)定時間間隔的輸入信號的個數(shù)進行計數(shù),當計數(shù)值達到指定值時,說明定時時間已到。其輸入信號一般使用內(nèi)部的時鐘信號。任務一定時器1控制LED周期性閃爍三、相關知識1.定時器/計數(shù)器的作用與工作原理(1)定時器/計數(shù)器的作用2)計數(shù)器功能對任意時間間隔的輸入信號的個數(shù)進行計數(shù),一般用來對外界事件進行計數(shù)。其輸入信號一般來自單片機外部開關型傳感器,可用于生產(chǎn)線產(chǎn)品計數(shù)、信號數(shù)量統(tǒng)計和轉速測量等方面。任務一定時器1控制LED周期性閃爍三、相關知識1.定時器/計數(shù)器的作用與工作原理(1)定時器/計數(shù)器的作用3)捕獲功能對規(guī)定時間間隔的輸入信號的個數(shù)進行計數(shù),當外界輸入有效信號時,捕獲計數(shù)器的計數(shù)值。該功能通常用來測量外界輸入脈沖的脈寬或頻率,需要在外界輸入信號的上升沿和下降沿進行兩次捕獲,通過計算兩次捕獲的差值可以計算出脈寬或周期等信息。任務一定時器1控制LED周期性閃爍三、相關知識1.定時器/計數(shù)器的作用與工作原理(1)定時器/計數(shù)器的作用4)比較功能當計數(shù)值與需要進行比較的值相同時,向CPU提出中斷請求或改變I/O口輸出控制信號。該功能一般用來控制LED燈亮度或電機轉速。任務一定時器1控制LED周期性閃爍三、相關知識1.定時器/計數(shù)器的作用與工作原理(2)基本工作原理無論使用定時器/計數(shù)器的哪種功能,其最基本的工作原理是計數(shù)。定時器/計數(shù)器的核心是一個計數(shù)器,可以進行加1(或減1)計數(shù),每出現(xiàn)一個計數(shù)信號,計數(shù)器就自動加1(或自動減1)。當計數(shù)值從最大值變成0(或從0變成最大值)溢出時,定時器/計數(shù)器便向CPU提出中斷請求。計數(shù)信號的來源可選擇周期性的內(nèi)部時鐘信號(如定時功能)或非周期性的外界輸入信號(如計數(shù)功能)。任務一定時器1控制LED周期性閃爍三、相關知識1.定時器/計數(shù)器的作用與工作原理(2)基本工作原理圖4.28位減1計數(shù)器工作過程任務一定時器1控制LED周期性閃爍三、相關知識2.定時器/計數(shù)器的分類CC2530中共包括5個定時器/計數(shù)器,分別是定時器1、定時器2、定時器3、定時器4和睡眠定時器。任務一定時器1控制LED周期性閃爍三、相關知識2.定時器/計數(shù)器的分類(1)定時器1定時器1是一個16位定時器,是功能最全的定時器/計數(shù)器。任務一定時器1控制LED周期性閃爍三、相關知識2.定時器/計數(shù)器的分類(2)定時器2定時器2主要用于為IEEE802.15.4CSMA/CA算法提供定時,以及為IEEE802.15.4MAC層提供一般的計時功能,也稱為MAC定時器。用戶一般不使用該定時器。任務一定時器1控制LED周期性閃爍三、相關知識2.定時器/計數(shù)器的分類(3)定時器3和定時器4定時器3和定時器4都是8位定時器,可用于PWM控制。任務一定時器1控制LED周期性閃爍三、相關知識3.工作模式CC2530的定時器1只具備“自由運行”、“?!焙汀罢嫈?shù)/倒計數(shù)”3種不同的工作模式。任務一定時器1控制LED周期性閃爍三、相關知識3.工作模式(1)自由運行模式在自由運行模式下,計數(shù)器從0x0000開始,在每個活動時鐘邊沿增加1,當計數(shù)器達到0xFFFF時溢出,計數(shù)器重新載入0x0000并開始新一輪的遞增計數(shù)。任務一定時器1控制LED周期性閃爍三、相關知識3.工作模式(1)自由運行模式圖4.3自由運行模式任務一定時器1控制LED周期性閃爍三、相關知識3.工作模式(2)模模式在模模式下,計數(shù)器從0x0000開始,在每個活動時鐘邊沿增加1,當計數(shù)器達到T1CC0寄存器保存的值時溢出,計數(shù)器將復位到0x0000并開始新一輪遞增計數(shù)。任務一定時器1控制LED周期性閃爍三、相關知識3.工作模式(2)模模式圖4.4模模式任務一定時器1控制LED周期性閃爍三、相關知識3.工作模式(3)正計數(shù)/倒計數(shù)模式在正計數(shù)/倒計數(shù)模式下,計數(shù)器反復從0x0000開始,正計數(shù)到T1CC0保存的最終計數(shù)值,然后倒計時返回0x0000,如圖4.5所示。任務一定時器1控制LED周期性閃爍三、相關知識3.工作模式(3)正計數(shù)/倒計數(shù)模式圖4.5正計數(shù)/倒計數(shù)模式任務一定時器1控制LED周期性閃爍三、相關知識3.工作模式注意:自由運行模式的溢出值為0xFFFF不可變的,而其他兩種模式則可以通過對T1CC0賦值,精確控制定時器的溢出值。任務一定時器1控制LED周期性閃爍四、任務實施1.任務設計思路選用定時器1,讓其每隔固定時間產(chǎn)生一次服務中斷請求,在定時器1的服務處理函數(shù)中判斷時間是否達到1.5s,如果達1.5s則直接在服務處理函數(shù)中點亮LED1,當達到2s時再熄滅LED1。任務一定時器1控制LED周期性閃爍四、任務實施1.任務設計思路設置定時器1的分頻系數(shù)設置定時器1的最大計數(shù)值使能定時器1相關中斷使能系統(tǒng)總中斷為定時器1選擇工作模式(啟動定時器1工作)圖4.6定時器1初始化步驟
任務一定時器1控制LED周期性閃爍四、任務實施1.任務設計思路清除定時器1的中斷標志位記錄時間中斷處理函數(shù)開始達到1.5s?達到2s?熄滅LED1清零時間記錄點亮LED1處理函數(shù)結束圖4.7定時器1中斷處理函數(shù)的處理流程任務一定時器1控制LED周期性閃爍四、任務實施1.任務設計思路如果采用查詢方式實現(xiàn),則只需要對定時器1進行初始化配置的編寫。此時只需要對設置定時器1的分頻系數(shù),選擇工作模式即對T1CTL寄存器的值進行設置即可。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(1)設置定時器1的分頻系數(shù)定時器1的計數(shù)信號來自CC2530內(nèi)部系統(tǒng)時鐘信號的分頻,可選擇1、8、32或128分頻。CC2530在上電后,默認使用內(nèi)部頻率為16MHz的RC振蕩器,也可以使用外接的晶體振蕩器,一般為32MHz頻率的晶振。定時器1采用16位計數(shù)器,最大計數(shù)值為0xFFFF,即65535。當使用16MHz的RC振蕩器時,如果使用最大分頻128分頻,則定時器1的最大定時的時長為524.28ms。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(1)設置定時器1的分頻系數(shù)設置定時器1的分頻系數(shù)需要使用T1CTL寄存器,通過設置DIV[1:0]兩位的值為定時器選擇分頻系數(shù),T1CTL寄存器描述如表4.1。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(1)設置定時器1的分頻系數(shù)表4.1T1CTL寄存器描述位位名稱復位值操作描述7:40000R/W未使用3:2DIV[1:0]00R/W定時器1分頻設置。00:1分頻。01:8分頻。10:32分頻。11:128分頻。1:0MODE[1:0]00R/W定時器1工作模式設置。00:暫停運行。01:自由模式運行。10:模模式。11:正計數(shù)/倒計數(shù)模式。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(1)設置定時器1的分頻系數(shù)在本任務中,我們?yōu)槎〞r器1選擇128分頻,設置代碼如下。T1CTL|=0x0c;//定時器1時鐘頻率128分頻任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(2)設置定時器1的最大計數(shù)值任務要求定時時間為2s和0.5s,由CC2530時鐘源的選擇和定時器1的分頻選擇可知,定時器1最大定時時長為0.52s多。為了便于在程序中進行計算,可設置定時器1的定時時長為0.25s,則最大計數(shù)值如下。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(2)設置定時器1的最大計數(shù)值使用定時器1的定時功能時,使用T1CC0H和T1CC0L兩個寄存器存儲最大計數(shù)值的高8位和低8位。T1CCxH和T1CCxL共5對,分別對應定時器1的通道0~4,這兩個寄存器的功能描述如表4.2和表4.3所示。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(2)設置定時器1的最大計數(shù)值表4.2T1CCxH寄存器的描述位位名稱復位值操作描述7:0T1CCx[15:8]0x00R/W定時器1通道0到通道4捕獲/比較值的高位字節(jié)任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(2)設置定時器1的最大計數(shù)值表4.3T1CCxL寄存器的描述位位名稱復位值操作描述7:0T1CCx[7:0]0x00R/W定時器1通道0~4捕獲/比較值的低位字節(jié)任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(2)設置定時器1的最大計數(shù)值在程序設計中,應先寫低位寄存器,再寫高位寄存器。例如,設置定時器1計數(shù)初值0xF424的代碼如下。T1CC0L=0x12;//設置最大計數(shù)數(shù)值的低8位。T1CC0H=0x7A;//設置最大計數(shù)數(shù)值的高8位。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(3)使能定時器1中斷功能1)查詢方式使用代碼讀取定時器1當前的計數(shù)值,在程序中根據(jù)計數(shù)值大小確定要執(zhí)行的操作。通過讀取T1CNTH和T1CNTL兩個寄存器來分別獲取當前計數(shù)值的高位字節(jié)和低位字節(jié)。這兩個寄存器的描述如表4.4和表4.5所示。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(3)使能定時器1中斷功能1)查詢方式位位名稱復位值操作描述7:0CNT[15:8]0000R/W定時器1高位字節(jié)。在讀T1CNTL時,計數(shù)器的高位字節(jié)緩沖到該寄存器。表4.4T1CNTH寄存器的描述任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(3)使能定時器1中斷功能1)查詢方式位位名稱復位值操作描述7:0CNT[7:0]0x00R/W定時器1低位字節(jié)。向該寄存器寫任何值將導致計數(shù)器被清除為0x0000。表4.5T1CNTL寄存器的描述任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(3)使能定時器1中斷功能1)查詢方式當讀取T1CNTL寄存器時,計數(shù)器的高位字節(jié)會被緩沖到T1CNTH寄存器,以便高位字節(jié)可以從T1CNTH中讀出,因此在程序中應先讀取T1CNTL寄存器,然后讀取T1CNTH寄存器。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(3)使能定時器1中斷功能2)中斷方式定時器1有3種情況能產(chǎn)生中斷請求。①計數(shù)器達到最終計數(shù)值(自由運行模式下達到0xFFFF,正計數(shù)/倒計數(shù)模式下達到0x0000)。②輸入捕獲事件。③輸出比較事件(模模式時使用)。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(3)使能定時器1中斷功能2)中斷方式要使用定時器的中斷方式,必須使能各個相關中斷控制位。CC2530中定時器1~4的中斷使能位分別是IEN1寄存器中的T1IE、T2IE、T3IE和T4IE。由于IEN1寄存器可以進行位尋址,因此使能定時器1中斷可以采用以下代碼。T1IE=1;//使能定時器1中斷任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(3)使能定時器1中斷功能2)中斷方式除此之外,定時器1、定時器3和定時器4還分別擁有一個計數(shù)溢出中斷屏蔽位,分別是T1OVFIM、T3OVFIM和T4OVFIM。當這些位被設置成1時,對應定時器的計數(shù)溢出中斷便被使能,這些位都可以進行位尋址。不過一般用戶不需要對其進行設置,因為這些位在CC2530上電時的初始值就是1。如果要手工設置,可以用以下代碼實現(xiàn)。T1OVFIM=1;//使能定時器1溢出中斷最后要使能系統(tǒng)總中斷EA。任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(4)設置定時器1的工作模式由于需要手工設置最大計數(shù)值,因此可為定時器1選擇工作模式為正計數(shù)/倒計數(shù)模式。此時只需設置T1CTL寄存器中的MODE[1:0]位即可。一旦設置了定時器1的工作模式(MODE[1:0]為非零值),則定時器1立刻開始定時計數(shù)工作。其設置代碼如下。T1CTL|=0x03;//定時器1采用正計數(shù)/倒計數(shù)模式任務一定時器1控制LED周期性閃爍四、任務實施2.初始化定時器1(5)程序初始化代碼對定時器1進行初始化的代碼如下。//定時器初始化voidInitT1()//系統(tǒng)不配置工作時鐘時,默認使用內(nèi)部RC振蕩,即16MHz{T1CTL=0x0d;//128分頻,自動重裝0X0000~0XFFFF//T1STAT=0x21;//通道0,中斷有效}任務一定時器1控制LED周期性閃爍四、任務實施3.編寫定時器1的中斷處理函數(shù)如果采用查詢方式,則定時器1服務處理只需清除溢出標志即對IRCON賦值零,統(tǒng)計溢出次數(shù)實現(xiàn)即可。如果采用定時器1中斷方式,則必須編寫中斷處理函數(shù)。定時器1中斷處理函數(shù)具體如下。(1)定時器1的中斷標志定時器每隔0.5s會產(chǎn)生一個中斷請求,自動將定時器1的中斷標志位T1IF位和計數(shù)溢出標志位OVFIF位置位。任務一定時器1控制LED周期性閃爍四、任務實施3.編寫定時器1的中斷處理函數(shù)T1IF位于IRCON寄存器中,需要手工進行清除。T1STAT寄存器的描述如表4.6所示。表4.6T1STAT寄存器的描述位位名稱復位值操作描述7:600R0未使用5OVFIF0R/W0定時器1計數(shù)器溢出中斷標志4:0CHxIF0R/W0定時器1~4到通道0的中斷標志任務一定時器1控制LED周期性閃爍四、任務實施3.編寫定時器1的中斷處理函數(shù)清除定時器1計數(shù)器溢出中斷標志的代碼如下。T1STAT&=~0x20;//清除定時器1溢出中斷標志位任務一定時器1控制LED周期性閃爍四、任務實施3.編寫定時器1的中斷處理函數(shù)(2)計算定時時間定時器1的定時周期為0.5s,無法直接達到2s的定時時長,可以使用一個自定義變量來統(tǒng)計定時器1計數(shù)溢出次數(shù),具體代碼如下。unsignedintt1_count=0;//定時器1溢出次數(shù)計數(shù)由于采用正計數(shù)/倒計數(shù)模式,定時器1每溢出一次表示經(jīng)過了0.5s,此時讓t1_count自動加1,然后判斷t1_count的值。如果t1_count等于4,則說明定時已經(jīng)達到2s,同時清除t1_count的值,以便開始新的統(tǒng)計周期。根據(jù)任務要求,可在一輪定時的1.5s后點亮LED1,在定時2s后熄滅LED1。任務一定時器1控制LED周期性閃爍四、任務實施3.編寫定時器1的中斷處理函數(shù)(2)計算定時時間#pragmavector=T1_VECTOR__interruptvoidT1_INT(void){T1STAT&=~0x20;//清除定時器1溢出中斷標志位t1_count++;//定時器1溢出次數(shù)加1,溢出周期為0.5sif(t1_count==3)//如果溢出次數(shù)達到3說明經(jīng)過了1.5s{LED1=1;//點亮LED1if(t1_count==4)//如果溢出次數(shù)達到4說明經(jīng)過了2s{LED1=0;//熄滅LED1t1_count=0;//清零定時器1溢出次數(shù)
}}任務一定時器1控制LED周期性閃爍五、任務小結如果定時器1只使用查詢方式自由運行模式,可以只定義分頻系數(shù)(T1CTL)的值并且啟動自由運行模式即可。利用溢出標志位IRCON狀態(tài)值進行判斷即可。任務一定時器1控制LED周期性閃爍五、任務小結如果定時器1采用中斷方式正計數(shù)/倒計數(shù)模式運行。T1中斷初始化步驟:設置分頻系數(shù)(T1CTL)—設置最大計數(shù)值(T1CC0L和T1CC0H)—使能中斷(T1IE和T1OVFIM)—使能總中斷(EA)—選擇正計數(shù)/倒計數(shù)的工作模式(T1CTL)。中斷處理函數(shù):利用溢出標志位T1STAT狀態(tài)進行判斷即可(T1STAT&=0x20;//清除定時器1中斷標志位)。T1定時器定時時間0.5s,要求時鐘頻率128分頻(T1CTL|=0x0c;)、計數(shù)初值(T1CC0L=0x12;T1CC0H=0x7A;)、使能中斷(T1IE=1;T1OVFIM=1;)、總中斷(EA=1;)和設置定時器工作模式(T1CTL|=0x03;)。任務一定時器1控制LED周期性閃爍五、任務小結如果定時器1采用中斷方式模模式運行。先選擇分頻系數(shù),并且啟動模模式(T1CTL)—裝入定時器初值T1CC0L和T1CC0H(例如:T1CC0L=62500%256;T1CC0H=62500/256;)—設置捕獲比較通道0為比較模式(例如:T1CCTL0|=0x04;)—使能定時器1中斷(T1IE=1;)—開啟總中斷(EA=1;)。T1定時器定時時間1/60s,要求時鐘頻率8分頻自由重裝模式(T1CTL|=0x05;)。關于計數(shù)初值:T1CC0L=62500&0xFF;//62500低8位寫入T1CC0LT1CC0H=((62500&0xFF)>>8);//把62500高8位寫入T1CC0H。注意:T1CC0L和T1CC0H中是“零”,非字母“O”。自由運行模式可以不設初值。正計數(shù)/倒計數(shù)模式必須設置最大計數(shù),模模式必須設置定時器初值(比較值)。模模式中斷必須開啟定時器1的通道0并設置T1CTL成比較模式;在中斷服務函數(shù)中要清除通道0中斷標志,需要使用通道控制寄存器T1CCTL0,而不是使用溢出中斷標記位。通道1捕獲/比較寄存器值配置,先低位后高位。任務一定時器1控制LED周期性閃爍六、啟發(fā)與思考自由運行模式可以不設初值。正計數(shù)/倒計數(shù)模式必須設置最大計數(shù),模模式必須設置定時器初值(比較值)。模模式中斷必須開啟定時器1的通道0并設置T1CTL成比較模式;在中斷服務函數(shù)中要清除通道0中斷標志,需要使用通道控制寄存器T1CCTL0,而不是使用溢出中斷標記位。通道1捕獲/比較寄存器值配置,先低位后高位。任務二定時器3實現(xiàn)LED周期性閃爍一、任務描述編寫程序使用CC2530單片機內(nèi)部定時器/計數(shù)器控制CC2530板上的LED周期性閃爍。具體要求如下。定時器3使用中斷實現(xiàn)LED周期性閃爍,具體要求如下。①通電后LED1每隔1s閃爍一次。②LED1每次閃爍的點亮時間為0.5s。任務二定時器3實現(xiàn)LED周期性閃爍二、任務目標①檢驗學生掌握CC2530單片機定時器/計數(shù)器3的工作原理。②檢驗學生掌握CC2530單片機定時器/計數(shù)器3的使用方法。③檢驗學生掌握CC2530單片機定時器/計數(shù)器3的中斷應用等技能。任務二定時器3實現(xiàn)LED周期性閃爍二、任務目標2.素養(yǎng)目標①培養(yǎng)學生在工作現(xiàn)場的6S意識和用電安全意識。②愛惜工具,注重場地整潔。③具備積極、主動的探索精神。任務二定時器3實現(xiàn)LED周期性閃爍三、相關知識定時器3和定時器4的所有定時器功能都是基于8位計數(shù)器建立的。計數(shù)器在每個時鐘邊沿遞增或遞減?;顒訒r鐘邊沿的周期由寄存器位CLKCONCMD.TICKSPD[2:0]定義,由TxCTL.DIV[2:0](其中“x”指的是定時器號碼3或4)設置的分頻器值進一步劃分。計數(shù)器可以作為一個自由運行計數(shù)器、倒計數(shù)器、模計數(shù)器或正計數(shù)/倒計數(shù)器運行。用戶可以通過SFR寄存器TxCNT讀取8位計數(shù)器的值,其中x指的是定時器號碼,3或4。清除和停止計數(shù)器是通過設置TxCTL控制寄存器的值實現(xiàn)的。當TxCTL.START寫入1時,計數(shù)器開始工作。當TxCTL.START寫入0時,計數(shù)器停留在當前值。任務二定時器3實現(xiàn)LED周期性閃爍三、相關知識1.定時器/計數(shù)器定時器3和定時器4都是8位定時器,可用于PWM控制。每個定時器有兩個獨立的比較通道,每個通道上使用一個I/O引腳。任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施2.工作模式CC2530的定時器3和定時器4都具備“自由運行”、“?!?、“正計數(shù)/倒計數(shù)”和“倒計數(shù)”4種不同的工作模式。任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施2.工作模式(1)自由運行模式在自由運行模式下,計數(shù)器從0x00開始,每個活動時鐘邊沿遞增。當計數(shù)器達到0xFF,計數(shù)器載入0x00,并繼續(xù)遞增。當達到最終計數(shù)值0xFF(如,發(fā)生了一個溢出),就設置中斷標志TIMIF.TxOVFIF。如果設置了相應的中斷屏蔽位TxCTL.OVFIM,就產(chǎn)生一個中斷請求。自由運行模式可以用于產(chǎn)生獨立的時間間隔和輸出信號頻率。任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施2.工作模式(2)模模式在模模式下,8位計數(shù)器從0x00啟動,在每個活動時鐘邊沿遞增。當計數(shù)器達到寄存器TxCC0所包含的最終計數(shù)值時,計數(shù)器復位到0x00,并繼續(xù)遞增。當發(fā)生這個事件時,設置標志TIMIF.TxOVFIF。如果設置了相應的中斷屏蔽位TxCTL.OVFIM,就產(chǎn)生一個中斷請求。模模式可以用于周期不是0xFF的應用。任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施2.工作模式(3)正計數(shù)/倒計數(shù)模式在正計數(shù)/倒計數(shù)模式下,計數(shù)器反復從0x00開始正計數(shù),直到達到TxCC0所含的值,然后計數(shù)器倒計數(shù),直到達到0x00。這個定時器模式用于需要對稱輸出脈沖,且周期不是0xFF的應用。因此它允許中心對稱的PWM輸出應用程序的實現(xiàn)。任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施2.工作模式(4)倒計數(shù)模式在倒計數(shù)模式下,定時器啟動后,計數(shù)器載入TxCC0的內(nèi)容。然后計數(shù)器倒計時,直到0x00時,設置TIMIF.TxOVFIF。如果設置了相應的中斷屏蔽位TxCTL.OVFIM,就產(chǎn)生一個中斷請求。倒計數(shù)模式一般用于需要事件超時間隔的應用。任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施1.任務設計思路設置定時器3分頻系數(shù)設置定時器3最大計數(shù)值使能定時器3相關中斷使能系統(tǒng)總中斷為定時器3選擇工作模式(啟動定時器3工作)圖4.8定時器3初始化步驟任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施1.任務設計思路圖4.9定時器3中斷處理函數(shù)的處理流程清除定時器1的中斷標志位記錄時間中斷處理函數(shù)開始到達0.5s?到達1s?熄滅LED1清零時間記錄點亮LED1處理函數(shù)結束任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施2.初始化定時器3(1)設置定時器3的分頻系數(shù)定時器3的計數(shù)信號來自CC2530內(nèi)部系統(tǒng)時鐘信號的分頻,可選擇1、2、4、8、16、32、64或128分頻。定時器3采用8位計數(shù)器,最大計數(shù)值為0xFF,即255。系統(tǒng)不配置工作時鐘時,默認為2分頻,即16MHz的RC振蕩器。設定定時器3的分頻系數(shù)需要使用T3CTL寄存器,通過設置DIV[7:5]3位的值為定時器選擇分頻系數(shù)。T3CTL寄存器的描述如表4.8所示。任務二定時器3實現(xiàn)LED周期性閃爍表4.8T3CTL(T3控制寄存器)寄存器的描述位位名稱復位值操作描述7:5DIV[2:0]
000R/W定時器3分頻設置。000:1分頻。001:2分頻。010:4分頻。
011:8分頻。100:16分頻。101:32分頻。110:64分頻。111:128分頻。4START
0R/W啟動定時器設置。
0:定時器暫停運行。
1:定時器正常運行。
3OVFIM
0R/W定時器溢出中斷設置。
0:中斷禁止。1:中斷使能。2CLR
0R0/W1清除計數(shù)器,寫1到CLR復位計數(shù)器到0x00,并初始化相關通道所有的輸出引腳。1:0MODE[1:0]0R/W定時器工作模式設置。00:自由運行模式(自動重裝0x00~0xFF)。01:倒計數(shù)模式(從T3CC0~0x00計數(shù)一次)。10:模模式(反復從0x00~T3CC0計數(shù))。11:正計數(shù)/倒計數(shù)模式(反復從0x00~T3CC0計數(shù),再從T3CC0~0x00計數(shù))。任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施2.初始化定時器3在本任務中,為定時器3選擇128分頻,設置代碼如下。T3CTL|=0xE0;//128分頻,128/16000000*N=0.5S,N=62500T3CTL&=~0x03;//自動重裝0x00->0xFF62500/255=245(次)T3CTL|=0x10;//啟動任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施2.初始化定時器3T3CCTL0是T3通道0捕獲/比較控制寄存器,T3CCTL0寄存器的描述如表4.9所示。任務二定時器3實現(xiàn)LED周期性閃爍表4.9
T3CCTL0寄存器的描述位位名稱復位值操作描述70R0未使用
60R/W0:中斷禁止。1:中斷使能。
5:3000R/W比較輸出模式選擇
200R/W0:捕獲。1:比較。
1:000R/W00:沒有捕獲。01:上升沿捕獲。10:下降沿捕獲。11:邊沿捕獲。
任務二定時器3實現(xiàn)LED周期性閃爍表4.10
T3CC0寄存器的描述位位名稱復位值操作描述7:0VAL[7:0]0x00R/WT3通道0捕獲/比較值任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施T3CCTL1是T3通道1捕獲/比較控制寄存器,其描述如表4.11所示。表4.11T3CCTL1寄存器的描述位位名稱復位值操作描述70R0未使用60R/W0:中斷禁止1:中斷使能5:3000R/W比較輸出模式選擇20R/W0:捕獲1:比較1:000R/W00:沒有捕獲01:上升沿捕獲10:下降沿捕獲11:邊沿捕獲任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施T3CC1是T3通道1捕獲/比較值寄存器,其描述如表4.12所示。表4.12T3CCT1寄存器的描述位位名稱復位值操作描述7:00R/WT3通道1捕獲/比較值任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施(2)使能定時器3的中斷功能使用定時器3時,可以查詢方式查看定時器當前的計數(shù)值,也可以使用中斷方式。1)查詢方式使用代碼讀取定時器3當前的計數(shù)值,在程序中根據(jù)計數(shù)值大小確定要執(zhí)行的操作。任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施(2)使能定時器3的中斷功能使用定時器3時,可以查詢方式查看定時器當前的計數(shù)值,也可以使用中斷方式。2)中斷方式定時器3有3種情況能產(chǎn)生中斷請求。①計數(shù)器達到最終計數(shù)值(自由運行模式下達到0xFF,正計數(shù)/倒計數(shù)模式下達到0x00)。②輸入捕獲事件。③輸出比較事件(模模式時使用)。任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施(2)使能定時器3的中斷功能2)中斷方式要使用定時器的中斷方式,必須使能各個相關中斷控制位。CC2530中定時器1~4的中斷使能位分別是IEN1寄存器中的T1IE、T2IE、T3IE和T4IE。由于IEN1寄存器可以進行位尋址,因此使能定時器3中斷可以采用以下代碼。T3IE=1;//使能定時器3中斷任務二定時器3實現(xiàn)LED周期性閃爍四、任務實施(3)設置定時器3工作模式如果使用的是定時器3或定時器4,可參照表4.13所示設置相關寄存器。任務二定時器3實現(xiàn)LED周期性閃爍
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度拆遷安置房租賃糾紛調(diào)解合同
- 膀胱出血的護理
- 2025年中國電子交聯(lián)卷材市場調(diào)查研究報告
- 二零二五年度退租協(xié)議書及租賃房屋裝修費用結算合同
- 2025年度環(huán)保企業(yè)間循環(huán)經(jīng)濟項目借款合同
- 正規(guī)石材購銷合同范本
- 二零二五年度大棚蔬菜種植與農(nóng)業(yè)產(chǎn)業(yè)扶貧合同
- 2025年度物聯(lián)網(wǎng)產(chǎn)業(yè)合作開發(fā)合同
- 2025年度購物中心商鋪房屋租賃合同
- 2025年度跨境電商商業(yè)合作保密協(xié)議書
- 2024煤礦安全規(guī)程解讀
- 德州環(huán)鋰新能源科技有限公司2萬噸年廢舊鋰電池回收項目環(huán)境影響報告書
- 2025年江蘇省中職《英語》學業(yè)水平考試核心考點試題庫500題(重點)
- 延期實習申請書
- GB/T 1346-2024水泥標準稠度用水量、凝結時間與安定性檢驗方法
- 2025年江蘇信息職業(yè)技術學院高職單招職業(yè)適應性測試近5年常考版參考題庫含答案解析
- 【MOOC】跨文化交際-蘇州大學 中國大學慕課MOOC答案
- 北師大版數(shù)學八年級下冊全冊教案及反思
- 湖南版(湘教版)三年級美術下冊全冊全套課件(247張)
- 九宮數(shù)獨200題(附答案全)
- 心理健康與職業(yè)生涯中職PPT完整全套教學課件
評論
0/150
提交評論