本文介紹了華芯微特公司的MCU之TIMER脈沖發(fā)送功能的知識要點。
TIMER脈沖發(fā)送
1TIMER定時器之脈沖發(fā)送功能
我們今天詳細講解一下TIMER的脈沖發(fā)送功能。
SWM190的TIMER模塊提供了用于輸出脈沖的功能,發(fā)送指定脈寬的方波,可通過配置相應(yīng)寄存器輸出脈沖做PWM使用。每一個TIMER都可以配置兩個脈沖輸出翻轉(zhuǎn)點(翻轉(zhuǎn)點0/1)中斷。使能中斷后,在計數(shù)過程中到達設(shè)置的翻轉(zhuǎn)值會觸發(fā)中斷操作。
一般情況下我們會將翻轉(zhuǎn)點1設(shè)置為TIMER的周期值,使其輸出PWM波
2 SWM190 TIMER脈沖輸出功能配置庫函數(shù)
下面我們以脈沖輸出為例,使用加強型定時器,使用TIMR0的Output Compare功能輸出脈沖信號。在此例程中,我們將使用B6作為TIMER0的輸出脈沖IO口,翻轉(zhuǎn)點1設(shè)置為TIMER的周期值,使用脈沖輸出功能輸出PWM,其波形圖如圖表 1所示。
我們之前有講到PORT和TIMER的配置方法,在這里就不在做贅述,將B6引腳通過PORT_Init設(shè)置為TIMER的輸入功能引腳(PORTB_PIN6_TIMR0_OUT),并將TIMER0模塊功能在TIMR_Init初始化為脈沖輸出功能(TIMR_MODE_OC)。
我們接下來看TIMR_OC_Init(TIMR_TypeDef * TIMRx, uint32_t match, uint32_t match_int_en, uint32_t init_lvl)函數(shù)。
函數(shù)的第一個參數(shù)為TIMR_TypeDe,它是一個結(jié)構(gòu)體類型,該類型在SWM190.h中被定義。具體參數(shù)為指定TIMER模塊,有效值包括TIMR0,TIMR1,TIMR2,TIMR3;
第二個參數(shù)為match,為第一個翻轉(zhuǎn)點,當計數(shù)器的值遞減到match時引腳輸出電平翻轉(zhuǎn);
第三個參數(shù)為match_int_en,為第一個翻轉(zhuǎn)點中斷使能,當計數(shù)器的值遞減到match時是否產(chǎn)生中斷;
第四個參數(shù)為init_lvl,為輸出初始電平值;
我們的函數(shù)配置為:
TIMR_OC_Init(TIMR0, SystemCoreClock/400, 0, 1);
IMR_OC_Init函數(shù)中配置為使用TIMER0;第一個翻轉(zhuǎn)值設(shè)置為SystemCoreClock/400;不使能輸出PWM翻轉(zhuǎn)點0;初始輸出電平為高;
值得一提的是,在TIMR_OC_Init庫函數(shù)中,默認將第二個翻轉(zhuǎn)值配置為周期值(TIMRx-》OCMAT1 = TIMRx-》LOAD;)。
具體配置函數(shù)如下圖所示:
3實驗現(xiàn)象下載好程序后,B6腳輸出初始電平為高,頻率為100hz,占空比為25%的PWM。責(zé)任編輯:haq
-
mcu
+關(guān)注
關(guān)注
146文章
17162瀏覽量
351348 -
脈沖
+關(guān)注
關(guān)注
20文章
890瀏覽量
95646 -
信號
+關(guān)注
關(guān)注
11文章
2791瀏覽量
76807
原文標題:MCU之TIMER脈沖發(fā)送
文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論