XMEGA PWM模块多通道的用法

分享到:

下面介绍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。

  1. #include <asf.h>
  2.  
  3. struct pwm_config pwm_1;
  4. struct pwm_config pwm_2;
  5.  
  6. uint8_t duty = 0;
  7.  
  8. int main (void)
  9. {
  10.     board_init();
  11.     sysclk_init();
  12.     delay_init();
  13.    
  14.     pwm_init(&pwm_1, PWM_TCD1, PWM_CH_B, 500);
  15.     pwm_start(&pwm_1, 0);
  16.     pwm_init(&pwm_2, PWM_TCD1, PWM_CH_A, 500);
  17.     pwm_start(&pwm_2, 100);
  18.    
  19.     while(1)
  20.     {
  21.         duty += 1;
  22.         if(duty > 99)
  23.         duty = 0;
  24.  
  25.         pwm_set_duty_cycle_percent(&pwm_1, duty);
  26.         pwm_set_duty_cycle_percent(&pwm_2, 100 - duty);
  27.  
  28.         delay_ms(50);
  29.     }
  30. }


完整程序下载地址:http://atmel.eefocus.com/module/forum/thread-5920-1-1.html

 

更多Atmel及科技资讯请关注:  
Atmel中文官网:http://www.atmel.com/zh/cn/
Atmel技术论坛:http://atmel.eefocus.com/
Atmel中文博客:http://blog.sina.com.cn/u/2253031744
Atmel新浪微博:http://www.weibo.com/atmelcn

 

继续阅读
开源门禁系统设计项目—基于ATmega328

门禁系统设计要求:基于atmega328单片机设计,具有通话、振铃、摘机、通话、开锁功能,还要有键盘和显示电路。

在ASF中使用GPIO的两种方法

在ASF中,将GPIO的控制封装到函数中,使用API函数来控制GPIO,函数从函数名称就可以看出功能,这样使用GPIO更加直观,简单明了。即使换用不同的芯片,控制函数也是相同的,只要修改GPIO的定义,不用修改程序。在ASF中使用GPIO有两种方式,本文为大家介绍两种方式的使用方法和区别。

sam4s16c的片内flash读写

最近一直在玩sam4s16c,网上的所有论坛基本找不到atmel的资料,真心的不喜欢,但是工作需要,没办法。只能静下心来仔细研究Datasheet,别无他径。

把握MCU发展轨迹 正确选择MCU完成产品创新

面对缤纷多彩的 MCU 世界,如何在新品设计,老产品更新换代中正确的选择芯片和供应商将是要面临的一个重要的题目,因为无论是产品的更新还是 MCU 的更新速度都远远超出设计者预想,正确把握 MCU 发展趋势,利用 MCU 帮助产品创新是电子设计者正在考虑的问题。

SAM4L8教程之USB复合设备的实现

大家用usb数据线连接开发板的DEBUG USB,打开设备管理器会发现主机识别出有3个设备,这就是usb多功能的复合设备。下面是我探索将MSC,usb mouse和usb keyboard集合于1个设备的教程。

©2017 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss