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

[复制链接]
2566|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个脉宽可设定。<br /><br />如果你的3个pwm周期不一样时,毫秒级以上的控制,可以采用时钟溢出中断方<br />式,累计三路不同的时间同设定好的脉冲时间脉宽时间比较,程序如下:<br /><br />#define&nbsp;&nbsp;&nbsp;a_pwm_h_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100<br />#define&nbsp;&nbsp;&nbsp;a_pwm_l_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100<br />#define&nbsp;&nbsp;&nbsp;b_pwm_h_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100<br />#define&nbsp;&nbsp;&nbsp;b_pwm_l_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100<br />#define&nbsp;&nbsp;&nbsp;c_pwm_h_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100<br />#define&nbsp;&nbsp;&nbsp;c_pwm_l_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100&nbsp;<br /><br /><br />int&nbsp;a_pwm_h&nbsp;,&nbsp;a_pwm_l;<br />int&nbsp;b_pwm_h,&nbsp;b_pwm_l&nbsp;;<br />int&nbsp;c_pwm_h,&nbsp;c_pwm_l&nbsp;;<br /><br />100us溢出:<br />interrupt:<br /><br />{<br />&nbsp;if(PTADO==1)<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;a_pwm_h++;<br />&nbsp;&nbsp;&nbsp;if(a_pwm_h&gt=a_pwm_h_data)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;a_pwm_l=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PTAD0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />else<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;a_pwm_l++;<br />&nbsp;&nbsp;&nbsp;if(a_pwm_l&gt=a_pwm_l_data)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;a_pwm_h=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PTAD0=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br /><br />//其它路同上可以扩展,精度可以<br /><br /><br /><br /><br />}<br /><br /><br />
 楼主| zhangxptt 发表于 2007-5-24 17:34 | 显示全部楼层

谢谢

太感谢了,我回去试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部