|
程序初始化打開中斷后入死循環(huán)。
中斷開始,中斷程序中前兩個(gè)if語句判斷計(jì)數(shù)(PWM_COUNT)是否等于占空比比對值(PWM_VLAUE),若等于LED亮(PWM高電平)。若計(jì)數(shù)(PWM_COUNT)等于10,LED滅(PWM低電平)。由于初始占空比比對值(PWM_VLAUE) = 5,所以開始時(shí)每中斷5次LED輸出狀態(tài)改變一次,占空比5:5。(周期10*200us)
后兩個(gè)if語句判斷中斷次數(shù)也就是占空比更新時(shí)(HUXI_COUNT)和占空比更新方向(direc_flag是越來越亮還是越來越暗)。當(dāng)中斷次數(shù)達(dá)到600次(時(shí)間600*20us)direc_flag=0,占空比比對值(PWM_VLAUE)+1,經(jīng)過前兩個(gè)if語句,占空比變?yōu)?:6,依次類推直至1:9,由if(PWM_VLAUE == 9) 將占空比更新方向(direc_flag)變?yōu)?。當(dāng)中斷次數(shù)(HUXI_COUNT)再次等于600因?yàn)椋╠irec_flag)為1,占空比比對值(PWM_VLAUE)開始-1,占空比由1:9變?yōu)?:8,依次類推直至9:1,占空比更新方向(direc_flag)變?yōu)?,完成一次明暗交替,并進(jìn)入下次循環(huán)。
以上純屬個(gè)人見解,說錯(cuò)還請見諒,勿噴..... |
|