打印

请教:用一个定时器实现2路PWM

[复制链接]
6323|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Torda|  楼主 | 2010-12-31 14:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不需要调整频率,固定在8K或者16K即可。但是需要2路或者是3路。用定时器来模拟的话,1路好说。如果是多路的话,好像分辨率就会受到很大的限制。

我的思路是这样的:

设置定时器中断的时间,则可以得到1路PWM的脉宽。其它几路PWM的脉宽都是这个脉宽的倍数。

如果这样做的话,PWM就失去了其中的意义。

有没有高手指点下,一般用IO来模拟多路PWM,是怎么实现的呢

相关帖子

沙发
汽车电子| | 2010-12-31 14:37 | 只看该作者
16K,也不快。
2路3路不就是中断里多几条指令而已,精度要求没那么苛刻吧?

使用特权

评论回复
板凳
airwill| | 2010-12-31 19:14 | 只看该作者
avr 有单个定时器两路硬件 PWM, 频率正好在 16K左右.
用软件实现, 对于这么高的频率, 8位机恐怕太难了. 实在做不高精度了

使用特权

评论回复
地板
lyjian| | 2010-12-31 20:25 | 只看该作者
用软件来实现可不容易。16K的周期是62.5us,你想实现几位的分辨率?普通单片机要实现8位肯定是不行的,估计是实现个两三位的都困难,CPU别想做别的了。
当然,如果你的MCU特别块的话那另当别论。
建议你还是用个带硬件PWM的MCU吧,像51带5路PWM的片子大把,又不贵。

使用特权

评论回复
5
ycz9999| | 2010-12-31 20:53 | 只看该作者
我CPU 11.0592M的 STC89C52RC    我想弄个38K出来当载波用  而且产生载波的同时还想叠加些代码进去  让接收的MCU可以识别出  并作出相应的动作    不知道可以不  正在思考中  望知道的高手也给我解答下    先说声谢谢......

使用特权

评论回复
6
lyjian| | 2010-12-31 21:09 | 只看该作者
用STC89C52RC的T2的频率输出功能做比较简单。

使用特权

评论回复
7
李冬发| | 2011-1-2 10:36 | 只看该作者
看你是什么MCU了,要是带多个比较器的定时器实现起来就容易了。比如430,有7路比较器,就可以实现7路PWM.

使用特权

评论回复
8
宋业科| | 2011-1-2 13:01 | 只看该作者
好像12C508都有用来输出3路PWM的。

使用特权

评论回复
9
lyjian| | 2011-1-2 13:15 | 只看该作者
做多少路不是关键,做多大分辨率才是关键。
1路输出和8路输出,软件上基本都没什么差别。

使用特权

评论回复
10
老鱼探戈| | 2011-1-3 13:12 | 只看该作者
频率也不是很高,
会1+1,不会1+2?
多几个变量而已

使用特权

评论回复
11
airwill| | 2011-1-4 11:16 | 只看该作者
记得 51 里的 PCA 可以带多路 PWM 可以到 8 位精度, 楼主去看看

使用特权

评论回复
12
Torda|  楼主 | 2011-1-7 01:40 | 只看该作者
用比较器怎么实现PWM呢?

另外C8051F的PWM是什么多少位精度的呢

使用特权

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

本版积分规则

个人签名:专业的方案开发: 、iphone智能配件 、串口WIFI模块 、3G DTU 、串口MP3模块、录音模块 、视频相关(图像拼接、人数、车牌、疲劳驾驶识别)

132

主题

484

帖子

1

粉丝