打印

请教如何输出规定数目的PWM波

[复制链接]
1432|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我是要控制步进电机,所以想输出规定数目的PWM波让它转动一定的角度。
情况是这样:将输入信号分为3档(具体实现先不管),当信号在第1档范围中,我设变量x = 1,让步进电机转动30°;当信号在第2档范围中,变量x = 2,让步进电机转动60°;当信号在第3档范围中,变量x = 3,让步进电机转动90°。
我的想法是用PWM来控制步进电机转动规定的角度。清零PWM的reset,PWM就开始输出脉冲序列。这样一来,我用延时函数Cydelay()来控制reset = 0的时间,以此达到输出规定数目的PWM波的目的。
请问我这样做可以吗?或者常规输出规定数目的PWM波的方法是什么?
沙发
PSoC小子| | 2012-8-27 17:45 | 只看该作者
我觉得用Cydelay()来控制reset = 0的时间不太可取,因为CyDelay只是一个普通的延时程序,它的精度受主时钟精度的影响。 如果是PSoC5的话, IMO的精度甚至在+-5%,这显然是不能接受的。
我觉得可以使用中断来计数,计数完成置位 Control_Reg 去控制 PWM 的 Reset 端。

如果不使用中断,你也可以自己用 Verilog 写一个计数器,然后引出一个输出直接控制PWM 的 Reset 端。

使用特权

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

本版积分规则

0

主题

23

帖子

1

粉丝