下面介紹ASF中PWM模塊同時使用多個通道的用法:
定義PWM變量,每個通道需要單獨定義一個變量
struct pwm_config pwm_1;
struct pwm_config pwm_2;
使用pwm_init函數初始PWM。如果是同一個PWM模塊(定時器),需要使用相同的頻率參數。
設置每個通道的占空比
pwm_set_duty_cycle_percent(&pwm_1, duty);
pwm_set_duty_cycle_percent(&pwm_2, duty);
pwm_set_duty_cycle_percent和pwm_start函數的區別
雖然兩個函數都是設置占空比的,參數也完全相同,但是pwm_start還會再次設置定時器參數,比 pwm_set_duty_cycle_percent速度慢,效率低,所以一般是PWM初始化時用pwm_start函數,其他地方使用pwm_set_duty_cycle_percent函數。
參考代碼,控制XMEGA A3BU Xplained的PD6/OC1A和PD5/OC1B。因為在硬件上,兩個LED是反相的,所以設置占空比時需要用100-duty。
-
PWM
+關注
關注
114文章
5190瀏覽量
214035
發布評論請先 登錄
相關推薦
評論