关于点阵屏驱动的问题

2019-03-24 17:00发布

RT,本菜鸡最近一段时间自己娱乐了几块可级联的点阵屏。

想法是每块点阵屏由4块8*8的点阵组成,每块都有一片STC15w404AS来控制,并由74HC573来锁存输出。
由两根线统一对点阵屏组进行控制,一根为数据线,另外一根用于判断数据线是否有更新。由每块板上单片机解析并输出。

但我经实践后发现,若刷新频率过高,很有可能在输出过程中数据有更新,造成类似于马达缺步一样的问题。
请问各位dalao,如何提高这个程序的效率,减少缺步的可能性。

代码直接贴上来就太乱了,我放在ubuntu剪切板里
单片机上的C代码

另:本程序在48*32的点阵组下,以最高频率运行,每秒只能刷新10次左右,不符合我的需求。

多谢各位的帮助!

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
GoldenPoato
2019-03-26 09:21
huo_hu 发表于 2018-6-21 08:26
重新编辑
有这么几个问题希望楼主考虑
1.你说的"数据是否有变化"逻辑上没理解什么意思,不更新就不发数 ...

我又去查了一轮资料,才刚刚知道我的COM2就是时钟线(我一开始的想法就是让它成为时钟线,但是不知道它的技术名称)。
为了防止我理解错误,我还是说明一下我COM2的意思以及这个项目的整体想法吧。

整个点阵屏我是打算一主多从机的结构。
我为了让从机界定数据接线,就制定了一个规则:
无标题.png

然后COM1就是那个数据线了,1表示当前点亮,0则反之。
COM2用于让判断COM1的数据是否有更新(即是否切换至下一个点更新) (应该就是类似时间信号了吧)

我的单片机代码是有新的数据才会更新新数据的所在的点的,这样基本上可以保证在刷新的时候不会闪屏,也可以减少静止时的数据传输量。
至于主机上的代码,为了切合我的那个规则,我专门写了一个c++的.h头文件来实现数据的发送。


然后我今天惊讶的发现,COM2线正好接的是单片机的INT2口。所以说我大概就可以不用更新硬件,更新一下软件就可以解决问题了。



但是我还是不是很懂您的只需要一根线来传输是什么意思,能说一下吗?


多谢万分!



一周热门 更多>