下面介绍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文章
5140浏览量
213359
发布评论请先 登录
相关推荐
评论