关于点阵屏驱动的问题

2019-03-24 17:00发布

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

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

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

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

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

多谢各位的帮助!

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
GoldenPoato
1楼-- · 2019-03-25 16:27
 精彩回答 2  元偷偷看……
Li_Lei
2楼-- · 2019-03-25 20:25
有个疑问,你好像是多台下位机并联在通讯线上,如何界定数据是发送给哪一台下位机的?
如果有时钟线就用spi来实现,能实现很高的速率,你这个没有时钟,用单工的串口就行了.com2的作用是多余的,串口会检测数据线的跳变作为起始信号和你那个作用是一样的,用串口实现已经包含这部分了.
另外你说的"数据是否有变化"是什么意思?没变化就不发送就行了呗.
还有我看你是打算四个方向公用数据总线,那么通讯的速率你最好核算一下能否满足最坏情况的需要.
Li_Lei
3楼-- · 2019-03-25 21:25
回复了,怎么还要审核呀
Li_Lei
4楼-- · 2019-03-26 01:26
 精彩回答 2  元偷偷看……
Li_Lei
5楼-- · 2019-03-26 03:30
你这个设计在显示静态画面的时候可以大幅减少数据传输量,但动态显示比如滚屏时就比较麻烦要结合软件指令才能达到最好的效果.
GoldenPoato
6楼-- · 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口。所以说我大概就可以不用更新硬件,更新一下软件就可以解决问题了。



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


多谢万分!



一周热门 更多>