本帖最后由 adlu 于 2017-12-6 14:30 编辑
不要按行列扫描一次点多个灯。
12个灯,每次只点亮1个就行了,也就是每个灯的扫描时间是扫描周期的1/12。
注意,即使某个灯信息为0,也要占用1/12的扫描周期,以确保无论显示亮多少个灯,亮度都一样。
这样就解决了亮度不均匀的问题。
限流电阻改小一点,这是不增加硬件的条件下,提高亮度的唯一方法了。
要保证固定扫描周期,当然要用定时器。可以设置优先级低于语音所用的定时器中断。
如果语音所用定时中断处理时间较长,影响到亮度的话,可以在进入该中断时,暂停显示用的定时器,并关闭显示,并保存当前扫描的位置,退出中断时开显示和恢复定时器。
adlu 发表于 2017-12-6 14:24
不要按行列扫描一次点多个灯。
12个灯,每次只点亮1个就行了,也就是每个灯的扫描时间是扫描周期的1/12。
...
这样不对,我觉得 应该是行列式的,这样可以减少扫描周期,从而提高亮度;
我现在设置的定时器 是 48000000/(479+1)(1+1) = 50KHZ;
但是,尝试更高亮度,发现会影响我读取按键值的速度;后面我会去采用降低限流电阻去尝试提高亮度
xueshawu1 发表于 2017-12-6 16:39
这样不对,我觉得 应该是行列式的,这样可以减少扫描周期,从而提高亮度;
我现在设置的定时器 是 480000 ...
"不要按行列扫描",理由是你当前的电路下,减小电阻后,GPIO输出电流有限,驱动多个灯时,亮度不均匀。
adlu 发表于 2017-12-6 16:51
"不要按行列扫描",理由是你当前的电路下,减小电阻后,GPIO输出电流有限,驱动多个灯时,亮度不均匀。 ...
先看看吧,我主要是觉得单个点要 12次,行列式 只需要3次;这样亮度会高点
本帖最后由 maxtch 于 2017-12-6 19:14 编辑
xueshawu1 发表于 2017-12-6 10:32
这样貌似不行,这个方法我之前就试过,因为我还有语音播报功能,语音播报也是采用定时器更新WAV文件 的方 ...
两者可以共用定时器的,语音走一个采样显示走一行。电流问题就是外挂驱动 MOS 管。
我已经搞定了,大家散了吧:lol
待老夫整理一下思路,稍后写个文档出来装逼
xueshawu1 发表于 2017-12-7 17:02
待老夫整理一下思路,稍后写个文档出来装逼
坐等啊 :lol
具体实现方式与代码,请参考博客
http://blog.csdn.net/qq_25920091/article/details/78753905
zero99 发表于 2017-12-8 09:36
坐等啊
已经更新到博客了:lol