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