rclong 发表于 2012-4-6 04:19:40

有没有人试过UART模拟PWM或者DAC

8052上还有第二路UART
通过发送0x00~0xff来调整占空比

90999 发表于 2012-4-6 04:23:28

还是用IO吧.........

rclong 发表于 2012-4-6 04:34:44

90999 发表于 2012-4-6 04:23 static/image/common/back.gif
还是用IO吧.........

IO要调整占空比还是麻烦了一些 占用的资源也多一些吧

peixiuhui 发表于 2012-4-6 08:12:46

用UART模似 PWM与DAC这个想法好。

lindabell 发表于 2012-4-6 08:33:04

本帖最后由 lindabell 于 2012-4-6 08:35 编辑

假如我要100%的占空比,怎么弄呢?要知道串口协议每一帧都是以0打头的。
我认为用串口模拟PWM是行不通的

shotstar 发表于 2012-4-6 09:06:30

这个想法不错,但是我感觉范围不能包括0~100%,0和100%还是好弄的直接 I/O输出0 1 就好了

xyz2008 发表于 2012-4-6 09:14:06

感觉线性应该不会太好

whxiaowang 发表于 2012-4-6 09:20:29

这个精度?

.titrwh 发表于 2012-4-6 09:23:37

这个也就是个大概,要精确需要反馈。                                                                                             

dr2001 发表于 2012-4-6 09:37:55

模拟没什么问题,只不过就是10Bit一组的数据里边一个0,一个1。PWM的频率受到过采样影响不容易高,占空比受到起始和停止位影响范围受限。

at90s 发表于 2012-4-6 09:57:20

8052的串口我记得有同步串行模式的,发什么就串出什么,不会加头加尾的。

usingavr 发表于 2012-4-6 10:00:52

想法挺好。不过个人觉得跟IO方式比没什么优势,还不如IO方式灵活

lastfool 发表于 2012-4-6 10:16:11

at90s 发表于 2012-4-6 09:57 static/image/common/back.gif
8052的串口我记得有同步串行模式的,发什么就串出什么,不会加头加尾的。

那是串口0,
可以使用第二个串口通信,第一个串口PWM,定时器0用来做时钟,就可以解决问题了

rclong 发表于 2012-4-6 11:08:45

usingavr 发表于 2012-4-6 10:00 static/image/common/back.gif
想法挺好。不过个人觉得跟IO方式比没什么优势,还不如IO方式灵活

绝大多数的51都有UART
我是想通过这样实现一个PWM能节省一些代码长度
同时减少资源的开销

rclong 发表于 2012-4-6 20:35:47

如果采用移位寄存器的模式
用比较简短的代码还能构成16bit 24bit的PWM

erxun 发表于 2012-4-6 20:48:39

发送0x01 和 0x80 有区别么

dds 发表于 2012-4-6 21:10:38

at90s 发表于 2012-4-6 09:57 static/image/common/back.gif
8052的串口我记得有同步串行模式的,发什么就串出什么,不会加头加尾的。

哦,是吗,没用过

rclong 发表于 2012-4-6 21:13:35

erxun 发表于 2012-4-6 20:48
发送0x01 和 0x80 有区别么

是0X01 0x03 0x07 这样

mfkqqw 发表于 2012-4-6 21:16:11

应该行不通

rclong 发表于 2012-4-7 00:38:37

erxun 发表于 2012-4-6 20:48 static/image/common/back.gif
发送0x01 和 0x80 有区别么

是发送0x01 0x03 0x07 这样
充1和0的个数不一样 占空比就不一样

Sullivan 发表于 2012-4-7 07:14:39

那也只有2^3=8个阶,也就是3位的PWM吧。
页: [1]
查看完整版本: 有没有人试过UART模拟PWM或者DAC