弄了个led点阵屏驱动程序, 16行滚动的时候没事, 大于16行, 比如显示24点的或32点的时候滚动较快的时候上16行(r1, r2)和下16行(r3, r4)会错一位, 静止不滚或者滚动较慢时, 则看起来不会错位是正常的.
错位如下(显示的是24点字)
2016-06-02_165845.png (41.89 KB, 下载次数: 0)
下载附件
2016-6-2 17:19 上传
速度控制
每次 row == 0 的时候为一个循环, N个循环offset + 1 来移动一列, 通过N的大小来控制速度, 扫屏是1ms一次.
求解. 谢谢.
这个不需要什么花样的, 就是滚动而已. 另外速度也不会变啊, 因为这个是定时扫描的, 都是一次1ms, 一个循环就是16ms. 单片机用的是 gd32, 跑的108M, 速度是足够的.
另外我这个就是开辟的缓冲区, 直接缓冲区上数据往上刷的. 如果是静态/滚动慢点的话, 屏显示是稳定的. 我测试过刷一次屏好像用时是0.05ms不到吧. 应该不是刷屏速度的问题.
另外我怎么也理解不了为什么永远是下面16行往前差一位, (无论我先发上面的16行, 还是先发下面的16行数据都不影响结果), 还有为什么滚动慢就没这个问题了?
最后, 非常谢谢你的回答
一周热门 更多>