打印

大家好,我有一个PWM的问题

[复制链接]
1645|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangxptt|  楼主 | 2007-5-24 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在想用1个AW系列的单片机控制3个2相步进电机.这3个步进电机都有自己的驱动器,只需要单片机输出相应的PWM波形就好了.现在问题就是这3个步进电机所需要的脉冲频率和占空比都是各自独立的,请问怎么才能实现??(我看到AW60的片子有2个独立的PWM)

相关帖子

沙发
free_tech| | 2007-5-24 15:50 | 只看该作者

可以单独设定,看数据手册

使用特权

评论回复
板凳
FREE_TECH| | 2007-5-24 16:30 | 只看该作者

看第十章,pwm与时钟

它具有6个pwm通道,需要输出的pwm周期一样,6个脉宽可设定。

如果你的3个pwm周期不一样时,毫秒级以上的控制,可以采用时钟溢出中断方
式,累计三路不同的时间同设定好的脉冲时间脉宽时间比较,程序如下:

#define   a_pwm_h_data     100
#define   a_pwm_l_data     100
#define   b_pwm_h_data     100
#define   b_pwm_l_data     100
#define   c_pwm_h_data     100
#define   c_pwm_l_data     100 


int a_pwm_h , a_pwm_l;
int b_pwm_h, b_pwm_l ;
int c_pwm_h, c_pwm_l ;

100us溢出:
interrupt:

{
 if(PTADO==1)
 {
   a_pwm_h++;
   if(a_pwm_h>=a_pwm_h_data)
   {
    a_pwm_l=0;
    PTAD0=0;
    }
  }
  
else
 {
   a_pwm_l++;
   if(a_pwm_l>=a_pwm_l_data)
   {
    a_pwm_h=0;
    PTAD0=1;
    }
  }

//其它路同上可以扩展,精度可以




}


使用特权

评论回复
地板
zhangxptt|  楼主 | 2007-5-24 17:34 | 只看该作者

谢谢

太感谢了,我回去试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

10

帖子

0

粉丝