搜索
bottom↓
回复: 16

tft刷屏速度带来一个问题 希望大家给点儿思路 谢谢

[复制链接]

出0入0汤圆

发表于 2013-1-3 10:33:30 | 显示全部楼层 |阅读模式
问题是这样的:

tft刷屏在百毫秒级(使用atmega32a)

这样的话 我在实现屏幕切换时 也就是要把屏幕内容全部更新时 MCU就要全力为tft服务

这时候 MCU就无法从sd卡提取数据再发送给vs1053进行解码 音乐就会中断

这个问题如何解决 难道一定要使用时间片的方式 例如每个任务最多运行3ms

刷屏没结束 挂起 然后取sd卡数据发给vs1053 再刷屏 如此类推???????

还是有别的方式可以解决 希望大家提供一个思路 谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-1-3 10:42:20 | 显示全部楼层
vs1003有个数据请求呀,可以在中断中给数据吧!

出0入0汤圆

 楼主| 发表于 2013-1-3 10:44:57 | 显示全部楼层
xiaodao35 发表于 2013-1-3 10:42
vs1003有个数据请求呀,可以在中断中给数据吧!

是DREQ吧 那个好像不是中断吧 是在发数据的时候要检测这个引脚电平 来确定什么时候可以发送或者不能发送 具体不行我再看一下

出0入0汤圆

 楼主| 发表于 2013-1-3 10:48:04 | 显示全部楼层
xiaodao35 发表于 2013-1-3 10:42
vs1003有个数据请求呀,可以在中断中给数据吧!

哦 我明白了 确实是个数据请求 只是我没当中断来用 我明白了

我试一试 谢谢啦

出0入0汤圆

 楼主| 发表于 2013-1-3 10:58:26 | 显示全部楼层
xiaodao35 发表于 2013-1-3 10:42
vs1003有个数据请求呀,可以在中断中给数据吧!

老哥这样试过吗

怎么感觉都不对劲儿啊

还是觉得 在发送数据时检查这个DREQ好一些

当做中断来用的话 感觉有问题啊

数据在发送过程中 DREQ是有可能跳变的 这样会产生好多中断

或者说 程序运行貌似没有章法了

出0入0汤圆

发表于 2013-1-3 11:03:48 | 显示全部楼层
尽量不要全部更新屏幕,需要更新那块就更新那块,全部更新是效率最低的。就算是现在的主流PC,如果配上现在的高分辨率的屏幕全部更新也受不了。

出0入442汤圆

发表于 2013-1-3 11:36:41 | 显示全部楼层
tiancaigao7 发表于 2013-1-3 11:03
尽量不要全部更新屏幕,需要更新那块就更新那块,全部更新是效率最低的。就算是现在的主流PC,如果配上现在 ...

这你就有点错了。PC刷屏是硬件完成的,挤占的是显存带宽。至于其它操作,则必须是更新指定的一块。所以,分辨率越高,性能越差。

出0入0汤圆

 楼主| 发表于 2013-1-3 11:41:11 | 显示全部楼层
tiancaigao7 发表于 2013-1-3 11:03
尽量不要全部更新屏幕,需要更新那块就更新那块,全部更新是效率最低的。就算是现在的主流PC,如果配上现在 ...

这个确实是

在刷新MP3播放时间的时候 只用刷新一个数字就成了

但是现在是 这样的

主界面->MP3播放界面 这个没问题 应为MP3没有开始播放呢

MP3播放界面->主界面 这就是问题的部分 基本上要刷新全屏了

就是说 这个问题只有两个解决思路吗:1.尽量减少刷屏的大小 2.加入时间片,任务分片处理

出0入0汤圆

 楼主| 发表于 2013-1-3 12:17:46 | 显示全部楼层
wye11083 发表于 2013-1-3 11:36
这你就有点错了。PC刷屏是硬件完成的,挤占的是显存带宽。至于其它操作,则必须是更新指定的一块。所以, ...

老哥 咱别讨论PC啦

帮我出个主意啊

出0入442汤圆

发表于 2013-1-3 12:45:54 | 显示全部楼层
xiaoziwen 发表于 2013-1-3 12:17
老哥 咱别讨论PC啦

帮我出个主意啊

我纳闷你用的MCU没有声音缓冲?要知道,PC的声卡都有几十ms的声音缓冲的。再一个,你为什么不考虑用现成的带TFT控制器的MCU?RK2608,===,SDK之类的都能在网上找到了。要不然你就加个串并转换的CPLD,把刷屏变成并行的,让CPLD负责并转串,这样刷屏速度不就快了N倍了?

出0入0汤圆

 楼主| 发表于 2013-1-3 13:06:47 | 显示全部楼层
wye11083 发表于 2013-1-3 12:45
我纳闷你用的MCU没有声音缓冲?要知道,PC的声卡都有几十ms的声音缓冲的。再一个,你为什么不考虑用现成 ...

呵呵

我用的是avr单片机

缓冲区是个很好的思路 利用双缓冲区 音频解码器能等待tft刷新的时间就能增加一倍

按我之前的实验 可以有15ms左右了

现在想想真应该用stm32做 内存大 可以实现多缓冲

老哥说的瑞芯微的片子 还是再等等吧 能力不足

最后问一句

老哥说 瑞芯微的片子带有tft控制器

我自己买的也有啊 ili9341 之类的

这不是一个概念吗???

出0入442汤圆

发表于 2013-1-3 17:16:27 | 显示全部楼层
xiaoziwen 发表于 2013-1-3 13:06
呵呵

我用的是avr单片机

当然不一样。芯片内带的控制器,是有专门的DMA来处理的,你不需要关注怎样写屏,只需要写内存就OK了。

出0入0汤圆

 楼主| 发表于 2013-1-3 22:49:48 来自手机 | 显示全部楼层
wye11083 发表于 2013-1-3 17:16
当然不一样。芯片内带的控制器,是有专门的DMA来处理的,你不需要关注怎样写屏,只需要写内存就OK了。 ...

那就是和stm32的fsmc一个概念?

出0入442汤圆

发表于 2013-1-3 23:33:42 | 显示全部楼层
xiaoziwen 发表于 2013-1-3 22:49
那就是和stm32的fsmc一个概念?

不是。FSMC你得操心,然而LCD控制器你不用管它,配置好之后它自己就会从内存中读数据刷屏。即LCD控制器用的是FrameBuffer驱动,而FSMC你还得花功夫写屏。

出0入0汤圆

发表于 2013-1-4 00:08:23 | 显示全部楼层
分时刷屏, 不要刷全屏, 比如第一个时间片刷第一行, 下一个时间片刷第二行.

出0入0汤圆

 楼主| 发表于 2013-1-4 00:15:24 来自手机 | 显示全部楼层
wye11083 发表于 2013-1-3 23:33 不是。FSMC你得操心,然而LCD控制器你不用管它,配置好之后它自己就会从内存中读数据刷屏。即LCD控制器用 ...

差不多明白了 lcd控制器 只用给指定内存写数据 根据配置他就自动将数据发送给tft了

出0入0汤圆

 楼主| 发表于 2013-1-4 00:17:16 来自手机 | 显示全部楼层
cheungman 发表于 2013-1-4 00:08 分时刷屏, 不要刷全屏, 比如第一个时间片刷第一行, 下一个时间片刷第二行.

恩 这是好主意 只有分屏分的足够多 刷屏再慢也不是问题 谢谢啦
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-14 21:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表