【连载】基于AVR XMEGA-A3BU Xplained控制器的Wifi小车制作(7)
发布时间:2014-08-22
分享到:
【连载】基于AVR XMEGA-A3BU Xplained控制器的Wifi小车制作(7)
发布时间:2014-08-22
分享到:

导读:本文将研究A3BU Xplained板子的PWM 编程运用。

首先继续在打开的工程中点击 ASF Explorer,打开 ASF Wizard
pwm1.jpg

选中PWM 资源库,添加。然后在ASF Explorer 中可以看到新添加进的
pwm2.jpg

展开开Quick Start Guide,

struct pwm_config pwm_cfg;//定义一个变量

sysclk_init();

pwm_init(&pwm_cfg, PWM_TCE0, PWM_CH_A, 500);//选择一个PWM输出端口为PE0 and 设置PWM 一周计算频率为500 Hz.

在工程中找到pwm.h打开

void pwm_init(void)
{
pmic_init();
sysclk_init();
cpu_irq_enable();
pwm_init(&pwm_cfg, PWM_TCE0, PWM_CH_A, 500););//选择一个PWM输出端口为PE0 and 设置PWM 一周计算频率为500 Hz
pwm_overflow_int_callback(&pwm_cfg, my_callback);
}
void my_callback(void)
{
//do_something();
}

可以看到ASF给pwm函数初始化时内嵌了一个回调函数接口,很方便我们去编写当计数达到pwm设定值时,可以响应一个功能函数  当然如果我们只需要用来PWM 来电机调速  也可以不编写回调函数。

使用PWM的语句很简单:(比如用PE0端口输出占空比为3/4的PWM来给电动机调速)

struct pwm_config pwm_cfg;//定义一个变量
sysclk_init();
pwm_init(&pwm_cfg, PWM_TCE0, PWM_CH_A, 500);//选择一个PWM输出端口为PE0 and 设置PWM 一周计算频率为500 Hz
pwm_start(&pwm_cfg,75);//这里的75表示75%=3/4

是不是超级简单的几条语句就完成了PWM信号输出!!!

ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
作者  张艺

加入微信技术交流群

技术交流,职业进阶

关注电路设计技能公众号

了解最新技术方案

加入电路城 QQ 交流群

与技术大牛交朋友

讨论 (1)

讨论区
zq537 ·  2014-08-23