查看: 43|回复: 0

【连载】基于AVR XMEGA-A3BU Xplained控制器的Wifi小车制作(7)

[复制链接]

主题

好友

2

积分

白丁

  • TA的每日心情

    2014-8-28 17:09
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2014-8-23 01:08:46 |显示全部楼层
    导读:本文将研究A3BU Xplained板子的PWM 编程运用。
            首先继续在打开的工程中点击 ASF Explorer,打开 ASF Wizard       
            选中PWM 资源库,添加。然后在ASF Explorer 中可以看到新添加进的       
            展开开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信号输出!!!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|电路城

    GMT+8, 2019-7-20 01:36 , Processed in 0.107815 second(s), 14 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部