tzz1983 发表于 2024-9-19 09:39:28

本帖最后由 tzz1983 于 2024-9-19 10:09 编辑

wadz 发表于 2024-9-18 22:35
请了解一下这篇文章

如何解决液晶屏TE(Tearing Effect,显示撕裂)问题 - 来自Madliar https://www.madliar ...
感谢这位坛友推荐的爽文,从中获益良多
从文中得知:屏幕像素的刷新方向由屏幕面板上的cof芯片决定。
虽然软件可以改变屏幕 纵向/横向,但只是改变了写入数据时的顺序,不能改变扫描方向。

实验时,同样的软硬件,我把屏幕原来的“横向”改为“纵向“,
就没有了所谓的“斜纹”。如视频所示:



261



但是新的问题出现了, “横向撒裂”?




按文中描述, 这是由于屏幕自身扫描时,
读取数据时一部分读到了未刷新前的数据,
另一部分是刷新后的数据.


如何底解决 斜纹/横向撒裂?
两个条件:
1. 写入数据同步屏幕的扫描帧。
2. 写入速度不得低于扫描帧周期


发表一下我自己的看法,以上两点:
第1点,要求得到帧同步信号TE,但是。。大多数情况下买回的屏幕都是含控制方案的,
不会引出TE引脚。所以要满足第1点, 要么找有TE引脚的方案, 要么买祼屏自己做方案。
这对实验者来说无疑是不友好的。


第2点, 以本贴的刷新速率举例来说, 8位并口 38ms,
换算成频率:约为26HZ, 这个数值仍远低于帧频!
如果用16并口倒是大差不差。
所以要满足第2点也不太容易。


即然两个条件都“很难”满足, 那是不没有办法了呢?
办法还是有的。
虽然大家都遇到同样的问题,那为何有人在同样的条件下做出的页面却非常漂亮呢?
我的想法就是软件优化!
我们在实际应用时,很少做整屏刷新这样一个“大动作”。
比如编辑框输入字符时,你总不会每输入一个字符就刷新整个屏墓吧?
又比如某个控件的图片被点击时,只要刷新这个图片所占的区域即可。
这是windows编程里面剪裁区的概念,同样适用于嵌入式系统。
就是减少写入数据量,变现的提高了写入速度。


如果一定要整屏刷新怎么办,我的方案是,把整屏分割成几区域,分别刷新。
虽然仍能看到屏幕闪烁过程,但程度上有一定的缓解。还是可以接受的。


最后一点是,努力提高写入速度,还是那句话,只要写入的够快, 哪怕没有帧同步,影响也是非常小的。
理由是,如果你刷屏速率可以赶上帧率,那么即便有不同步,最多也就一帧“撒裂”,(如果写得慢会有连续几帧)
在连续的帧扫描中,一帧图像对于眼睛来说是不敏感的。



llyymm 发表于 2024-9-19 17:46:54

还没有用到屏的项目,但是这些经验要学,以后会用到的

soma 发表于 2024-9-19 23:37:59

感觉彩屏如果是全屏图片资源占用会比较多吧

autopccopy 发表于 2024-9-20 00:28:48

soma 发表于 2024-9-19 23:37
感觉彩屏如果是全屏图片资源占用会比较多吧

可以试试BMP, JPG. 国外有个开源的《TJpgDec - Tiny JPEG Decompressor》(对,就是上次Petit FatFs的网站)的程序,适合8位机的解码,表明支持如AV R/PI C及8051单片机。这可大大压缩图片的体积至原来的5-10之一!!!想LZ看看如何移植到STC单片机。.. @tzz1983:)


188

tzz1983 发表于 2024-9-20 07:47:29

autopccopy 发表于 2024-9-20 00:28
可以试试BMP, JPG. 国外有个开源的《TJpgDec - Tiny JPEG Decompressor》(对,就是上次Petit FatFs的网站 ...

嗯, 有空了解一下。

不过我认为,要显示大量图片,还是用位图比较好,
把位图存在外部的FLASH, 或TF卡,
TF卡就不用说了,动不动就几个G,
25系列FLASH几个M也不在话下。

我认为,即便是读出数据量大一点,那也比解码要快得多
况且解码出来后,数据还是会恢复到原来那么多像素。

业余菜狗 发表于 2024-9-21 19:50:45

不知道为啥,我的点不亮,我屏买错了?



tzz1983 发表于 2024-9-21 20:34:23

本帖最后由 tzz1983 于 2024-9-21 20:47 编辑

业余菜狗 发表于 2024-9-21 19:50
不知道为啥,我的点不亮,我屏买错了?


淘宝上买的,不一定是一样的.以下操作仅供参考

一开始我也点不亮,后来根据屏的描述,
屏的3.3V电源引脚实际不起作用,屏必须用5V引脚供电,再内部降为3.3V
而实验箱1.2版的屏5V供电引脚实际是空脚,也就是说它俩正好错开了.
所以我自己在背后给屏额外搭了一根5V线:
因为下班了,具体哪两个点我忘记了,你看板子有标识,自己焊,不难 
(大至如下图,蓝色的那根)




tzz1983 发表于 2024-9-21 21:01:43

用了两天实验箱,想向实验箱开发者提几个建议,又不知道去哪发表,
索性就直接在这说吧,希望相关人员可以看到:

1. 如楼上所遇问题,5V电源丝印上有标识,但实际却空缺.使用时不方便不说,关键是初学者会莫名其妙.
2. 数码管的 74HC595 驱动,能不能把OE 脚引至端口,
      现在是不使用数码管时,也要刻意去关闭它,否则就会时不时的自动亮起
3. 应该是有些端口复用较多的原因,引起高速信号线.....
      比如W25Q128这个器件,我在32G实验箱时,24M主时钟 SPI 2分频没有问题,
      但在8051U实验箱必须降至4分频才能用.


https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=10343&pid=101598


业余菜狗 发表于 2024-9-22 10:25:37

tzz1983 发表于 2024-9-21 20:34
淘宝上买的,不一定是一样的.以下操作仅供参考

一开始我也点不亮,后来根据屏的描述,


点亮了,但是花屏了{:sweat:}

tzz1983 发表于 2024-9-22 10:51:46

业余菜狗 发表于 2024-9-22 10:25
点亮了,但是花屏了

嗯,检查一下代码,刚开始调式时,用低一点的操作频率先尝试,正常后逐步提高频率
页: 1 [2] 3 4
查看完整版本: 刷屏,画重点:DMA 需要 RTOS!38ms,DMA-i8080并口8位刷TFT320*240彩屏@ILI9341