作者Petrucci99 (拉拉拉)
看板ASM
标题[问题] ADC0804转换速度与RGD-LED混色问题
时间Sun Oct 2 16:41:22 2011
各位版上先进^^"a
小弟这几天做了一个小小的8051实验
概念是用ADC0804把可变电阻转成一个8bit数位讯号
然後把这个读值设给色轮转换公式里面的H(Hue色调)变数
http://zh.wikipedia.org/wiki/HSV_%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4
算出r,g,b的权重,再用PWM法去点亮RGB-LED
经过一天的努力有了个初步的成果
大致上都友达预想的动作,但是严格来看还是有几个问题
1.在转动可变电阻的时候,RGB-LED虽然会随着转动变色,但是因为
ADC0804转换速度关西,色轮颜色变化会有不连续的感觉
2.我的PWM点RGB-LED,是用三个独立的sbit去控三个独立PNP电晶体分别点亮
R,G,B 但是目前还是可以察觉会有一点闪烁状况。
针对问题1.我目前只有想到找找看是不是有转换速度更快的ADC IC,不过
小弟对8051的接触只有大约半年,懂得比较少,所以想问一下版上的大家
有没有其他的方法可以解决这种问题呢?and以前那种可以调EQ的音响他们
是用类比还是数位的方法去调整阿?(後来仔细想想,这应该还是跟震荡速
度不够快有关,因为算了一下,现在的ADC线路一秒可以转换10000次 囧)
另外问题2.自己想了一下大致上有两个问题
一.是我用的震荡器时脉不够快,目前这个实验是用11.0592的震荡器,但是PWM的
计时中断副程式有点小长.....所以中断时间无法设太短。由这个问题又衍
生出另一个问题,就是要判断程式执行时间是不是要去看机械码的长度才可以抓
出个大致的执行时间?我目前计时中断的时间是乱抓的,尽可能的小这样..Orz
回到原问题,我这几天是打算换一个速度较快的振荡器约30MHz~40MHz(希望有
这麽高的频率and我的51可以支援),不知道这样是否恰当?
二.透过LED DRIVER IC是否会比较好?例如下面这个DD313 LED DRIVER IC
http://www.siti.com.tw/product/spec/LED/SP-DD313-A.003.pdf
不过自己看了一下spec,有点疑惑,这个IC似乎也是用PWM的讯号去控IC的
RGB电流输出,这样输出的电流不也是跟PWM讯号是一样的吗?还是说这个DRIVER IC
的功能只是提供一个稳定的电流,以增加寿命跟稳定性?
感谢大家耐心看完这麽长的问题,囧rz.....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 175.181.99.9
※ 编辑: Petrucci99 来自: 175.181.99.9 (10/02 19:12)
※ 编辑: Petrucci99 来自: 175.181.99.9 (10/02 20:09)
1F:推 POWERPC:PO错区了吧,有硬体存在己非本板所能了,去电子板问问看 10/02 20:24
2F:推 lion21:我认为是单纯软体的问题.效率要提高.pwm要顺.都要靠软体 10/02 22:21
3F:推 ksmrt0123:2.PWM写法可参考本板 #1BZWffSY W大的文章 10/02 22:25
4F:→ ksmrt0123:1.当从AD读到设定值时, 用timer把现在值慢慢变过去 10/02 22:26
5F:→ Petrucci99:ksmrt板友,小弟不才,#1BZWffSY<=这个是什麽呢Orz? 10/02 23:32
6F:→ Petrucci99:感谢感谢~^^" 10/02 23:32
7F:推 ruemann:文章代码 是本版的1056篇 10/03 00:27
8F:推 Seabook:2. ==>ADC有杂讯, 可以稍微滤波一下 10/03 07:50
9F:→ Petrucci99:感谢~^^ 10/03 11:12
10F:推 WolfLord:ADC的读取与PWM的输出可以TIMER岔开非同步动作这样会比 10/03 14:12
11F:→ WolfLord:较顺畅,如果MCU无法中断,那ADC提取时间把LED关掉。 10/03 14:13
12F:→ WolfLord:人的眼睛很容易欺骗,结果这样会比一边提取ADC一边做PWM 10/03 14:14
13F:→ WolfLord:"看起来" 顺畅。 10/03 14:14
14F:推 hengchieh:可以用io的方式来算每段程式到底花多久时间才计算出来 10/04 00:30
15F:→ hengchieh:知道每个片段程式所耗的时间,就大概知道就往哪个方向 10/04 00:31
16F:→ hengchieh:去优化。 10/04 00:32
17F:→ hengchieh:所谓IO的方式是指一个片段程式执行完打个PULSE,用示波 10/04 00:32
18F:→ hengchieh:器去量测间隔时间。 10/04 00:33
19F:→ Petrucci99:感谢~ 10/05 11:55