|
這個程序三個關鍵變量:1.timer1是PWM周期,周期為1000*1us,因為定時中斷實現的是1us定時,每次timer1++,然后主程序82行判斷是否到達1000,如果到達則完成定時1000*1us,此時要重新清零timer1,同時在這里86行控制引腳PWM=P2.1輸出正負電平。2:value確實是控制占空比的變量,正如你所說的現象是呼吸燈,那么這個占空比就不是定值了,需要程序設計占空比的更改,既要有占空比大小的更改,即value值要變化,同時也有方向的控制,即一會兒占空比變大,一會兒變小,用DIR正負來控制增減。3:count是控制value變化速度的,假如我們把value的增減周期和PWM的周期都設置成1000*1us,這個時候呼吸燈就會變化得相對很慢,試想一下每次PWM周期到了,value占空比僅僅增加或者減小1就很不明顯了。所以count就是把value更改的時間縮短了,換言之,這樣每次PWM周期到了,value占空比更改的數值+/- 10,這樣呼吸燈的效果也好看 |