打印
[STC单片机]

STC51系列单片机同时进行串口通信与定时器定时产生PWM波

[复制链接]
1872|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
宁静之夜|  楼主 | 2016-3-29 21:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做一个东西,需要考虑一下情况:单片机接收到一个数据后产生一定数量的PWM波,让电机转动。然后在电机转动的同时,又接收到一个数据产生另外一定数量的PWM波控制另外的电机转动。
现在遇到的困难是,如何让两个电机在各自转动一定波形数量后停止?
1:如果使用关闭定时器的方法,由于PWM波形的产生都是用定时器0产生的,那么当一个PWM波形产生完后关闭定时器0,另外一个PWM波形的产生肯定会收到影响。:
2:如果不使用关闭定时器的方法,由于单片机的中断优先级的存在,就无法接收到串口中断数据

请问各位大神,有没有什么比较好的方法可以解决这个问题,谢谢

相关帖子

沙发
dirtwillfly| | 2016-3-29 21:42 | 只看该作者
没用过STC51。用两路独立的pwm就好了

使用特权

评论回复
板凳
宁静之夜|  楼主 | 2016-3-29 21:51 | 只看该作者
dirtwillfly 发表于 2016-3-29 21:42
没用过STC51。用两路独立的pwm就好了

PWM波的数量是由串口通信获取到的信息决定的,也就是说串口通信中包含了PWM数量的信息

使用特权

评论回复
地板
dirtwillfly| | 2016-3-29 21:56 | 只看该作者
宁静之夜 发表于 2016-3-29 21:51
PWM波的数量是由串口通信获取到的信息决定的,也就是说串口通信中包含了PWM数量的信息 ...

对阿,这个是每路pwm波的数量,和两路pwm不矛盾

使用特权

评论回复
5
宁静之夜|  楼主 | 2016-3-29 22:10 | 只看该作者
dirtwillfly 发表于 2016-3-29 21:56
对阿,这个是每路pwm波的数量,和两路pwm不矛盾

我用的是定时器0来产生两路PWM波,当1路PWM波产生完后,如果关闭定时器0,应该会影响另一路PWM波的产生;如果不关闭定时器0,则定时器0会占用中断,导致串口中断无法进行

使用特权

评论回复
6
dirtwillfly| | 2016-3-30 08:02 | 只看该作者
宁静之夜 发表于 2016-3-29 22:10
我用的是定时器0来产生两路PWM波,当1路PWM波产生完后,如果关闭定时器0,应该会影响另一路PWM波的产生; ...

没用过STC51系列。。

使用特权

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

本版积分规则

9

主题

38

帖子

0

粉丝