引言
華芯微特公司SWM系列單片機提供的TIMER個數(shù)和功能有些微差別,為了讓您更加簡單的使用這一功能,下面小編將以SWM190為例,給大家展示如何使用SWM系列產(chǎn)品的TIMER功能。
TIMER精準延時
一、TIMER簡介
TIMER是一種定時器工具,用來在一個后臺線程計劃執(zhí)行指定任務(wù)。它可以計劃執(zhí)行一個任務(wù)一次或反復(fù)多次。
華芯微特公司SWM系列單片機提供的TIMER個數(shù)和功能有些微差別,為了讓您更加簡單的使用這一功能,下面小編將以SWM190為例,給大家展示如何使用SWM系列產(chǎn)品的TIMER功能。
SWM190系列有4路32位加強定時器,4路24位基礎(chǔ)定時器。加強型定時器支持支持定時器、計數(shù)器、捕獲、脈沖發(fā)送、HALL功能及ADC觸發(fā)功能等功能?;A(chǔ)定時器具備定時器功能,并具備一個8位分頻器,每個定時器具備獨立中斷源。
二、TIMER定時器之精準延時功能
我們今天詳細講解一下TIMER的定時器功能。
定時器功能使用片內(nèi)時鐘作為計數(shù)基準,以SWM190加強型定時器為例,有4個32 bit向下計數(shù)的TIMER,脈沖每一次下降沿,計數(shù)寄存器數(shù)值將減1。
每一個TIMER都可以配置定時器溢出中斷。使能溢出中斷,定時器溢出會觸發(fā)中斷操作,達到精準定時功能。
三、SWM190 TIMER延時功能配置庫函數(shù)
下面我們以最簡單的定時器為例,使用加強型定時器和基礎(chǔ)定時器,用定時器的方法實現(xiàn)1S的精準延時。在此例程中,我們將A4設(shè)為每2秒翻轉(zhuǎn)一次IO,A5設(shè)為每0.5秒翻轉(zhuǎn)一次IO,通過翻轉(zhuǎn)LED的狀態(tài)來觀察現(xiàn)象。
我們之前有講到GPIO的配置方法,在這里就不在做贅述,將LED輸出引腳通過GPIO_Init設(shè)置為輸出,與外部LED引腳相連。
在SWM190固件庫中對TIMER的配置進行了說明,下面將根據(jù)庫函數(shù)對SWM190的TIMER配置,首先來看一下TIMR_Init函數(shù)的原型void TIMR_Init(TIMR_TypeDef * TIMRx, uint32_t mode, uint32_t prediv, uint32_t period, uint32_t int_en)。這個函數(shù)的實現(xiàn)是在SWM190_timr.c文件中,若要使用該函數(shù)在相應(yīng)的應(yīng)用程序的前面包含SWM190_ timr.h頭文件。
函數(shù)的第一個參數(shù)為TIMR_TypeDe,它是一個結(jié)構(gòu)體類型,該類型在SWM190.h中被定義。具體參數(shù)為指定TIMER模塊,有效值包括TIMR0,TIMR1,TIMR2,TIMR3,BTIMR0,BTIMR1,BTIMR2,BTIMR3;
第二個參數(shù)為uint32_t mode,為TIMER模式配置,有效值包括TIMR_MODE_TIMER(定時器)、TIMR_MODE_COUNTER(計數(shù)器上升沿)、TIMR_MODE_OC(輸出比較)、TIMR_MODE_IC(輸入捕獲);其中基礎(chǔ)定時器只支持TIMR_MODE_TIMER(定時器);
第三個參數(shù)為uint32_t prediv,為TIMER分頻配置,其中加強型定時器無分頻只能為1;基本定時器可取值1-256;
第四個參數(shù)為uint32_t period,為計數(shù)周期,其中加強型定時器為32bit,基礎(chǔ)定時器為24bit。
第五個參數(shù)為uint32_t int_en,為中斷使能。
我們加強型定時器實現(xiàn)0.1S觸發(fā)一次,2S實現(xiàn)LED燈的翻轉(zhuǎn);基礎(chǔ)定時器實現(xiàn)0.5S實現(xiàn)LED燈的翻轉(zhuǎn)。
具體配置函數(shù)如下圖所示:
接下來我們看下中斷服務(wù)子函數(shù),在加強型定時器的中斷服務(wù)函數(shù)中,實現(xiàn)每0.1S進一次中斷。定義一個全局變量TimerNum,每當進一次中斷的時候,讓TimerNum來記錄進入中斷的次數(shù)。我們實現(xiàn)2S的定時,我們只需要判斷TimerNum是否等于20,然后把TimerNum清0,執(zhí)行對應(yīng)的操作并重新計數(shù),以此循環(huán)往復(fù)。
在基礎(chǔ)定時器的中斷服務(wù)函數(shù)中,實現(xiàn)每0.5S進行LED燈的一次翻轉(zhuǎn)。
四、實驗現(xiàn)象
下載好程序后,LED實現(xiàn)分別2S翻轉(zhuǎn)一次和0.5s翻轉(zhuǎn)一次。
責任編輯:lq6
-
定時器
+關(guān)注
關(guān)注
23文章
3228瀏覽量
114200 -
Timer
+關(guān)注
關(guān)注
1文章
63瀏覽量
12760
原文標題:華芯微特|MCU之TIMER精準延時
文章出處:【微信號:gh_ed4f95bde4df,微信公眾號:華芯微特32位MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論