日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]PWM在高頻情況下,一個很好的用處就是通過控制占空比來控制輸出的功率,比如控制風扇轉速、LED燈的亮度等。這次就利用PWM的中斷功能,動態(tài)改變脈沖的占空比,來實現呼吸燈的效果。一、實現思路PWM可以選擇讓計數器在

PWM在高頻情況下,一個很好的用處就是通過控制占空比來控制輸出的功率,比如控制風扇轉速、LED燈的亮度等。這次就利用PWM的中斷功能,動態(tài)改變脈沖的占空比,來實現呼吸燈的效果。

一、實現思路

PWM可以選擇讓計數器在周期結束產生中斷(在周期中央對齊時,可能選擇在周期中央也產生中斷),并且可以在運行的時候動態(tài)地調整占空比、周期、極性等屬性。所以可以在中斷處理函數中動態(tài)地改變占空比以改變LED燈的亮度。
這次也將使用通道0和引腳PA0。

二、PWM設置

這里需要用到較高頻率的時鐘,所以選擇使用主時鐘經32分頻后的時鐘(12.5 kHz)。計數器周期為400,即輸出脈沖頻率為125000/400 = 312.5 Hz。同時需要使能相應的中斷。
PWM的主要配置代碼如下:

12345678910111213#define PERIOD_VALUE 400/* 時鐘選擇 */PWM->PWM_CH_NUM[0].PWM_CMR = PWM_CMR_CPRE_MCK_DIV_32;/* 啟用中斷 */PWM->PWM_IER1 = PWM_IER1_CHID0;/* 周期及占空比 */PWM->PWM_CH_NUM[0].PWM_CPRD= PWM_CPRD_CPRD(PERIOD_VALUE);PWM->PWM_CH_NUM[0].PWM_CDTY = PWM_CDTY_CDTY(0);/* 使能中斷 */NVIC_ClearPendingIRQ(PWM_IRQn);NVIC_SetPriority(PWM_IRQn, 0);NVIC_EnableIRQ(PWM_IRQn);

三、PWM中斷處理

在每個周期結束后,會產生一個中斷。然后在中斷處理函數中,改變占空比。需要注意的是,在PWM使能時,需要通過寫入PWM占空比修改寄存器(PWM_CDTYUPD)來改變占空比。默認情況下,該修改在下一個周期生效。
為得到更好的效果,可以在兩次呼吸之間設置一斷間隔。
注意,需要通過讀取PWM_ISR1來拉低產生的中斷。中斷處理函數在后面的完整代碼中貼出。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉