彩屏刷屏的问题

[复制链接]
4221|23
 楼主| chen3bing 发表于 2011-9-8 09:11 | 显示全部楼层 |阅读模式
我一个480*272的彩屏,测试了一下,刷屏要2.5秒,晶振11.0592兆。
这种情况正常吗?谢谢!
 楼主| chen3bing 发表于 2011-9-8 09:17 | 显示全部楼层
我把刷屏的计数变量由long改为uint,时间变为1.6秒。
 楼主| chen3bing 发表于 2011-9-8 09:39 | 显示全部楼层
我把颜色填充有16位改为8位(256色),刷屏时间变为0.827秒。
huangqi412 发表于 2011-9-8 09:43 | 显示全部楼层
用51刷这么大的彩屏?
 楼主| chen3bing 发表于 2011-9-8 10:06 | 显示全部楼层
还可以更短吗?
holle 发表于 2011-9-8 10:10 | 显示全部楼层
只刷需要改动的部分
 楼主| chen3bing 发表于 2011-9-8 11:12 | 显示全部楼层
刷全屏可不可以做到更短?我是想知道是不是我程序有问题。
yadaovs 发表于 2011-9-8 13:08 | 显示全部楼层
感觉表示很好了啊。楼主只显示文字吧,不会有图片吧
 楼主| chen3bing 发表于 2011-9-8 13:20 | 显示全部楼层
只显示文字是这个速度,以后还要显示图片。
 楼主| chen3bing 发表于 2011-9-8 13:51 | 显示全部楼层
我把刷屏for循环里的++改为--的方式,刷屏时间由827.1025ms减为779.6179ms。
xwj 发表于 2011-9-8 14:50 | 显示全部楼层
用DMA,或者至少把小循环改成大循环,一次写N个点
 楼主| chen3bing 发表于 2011-9-8 15:11 | 显示全部楼层
谢谢xwj。现在变成687.8204ms了。
xwj 发表于 2011-9-8 15:25 | 显示全部楼层
先贴电路和程序再讨论。

不过,根本解决之道还是建议换个CPU。
 楼主| chen3bing 发表于 2011-9-8 15:29 | 显示全部楼层
刷屏程序:
void ClearScreen(uchar color)
{
uchar j,k;
/***
设定显示屏幕的大小
***/
M7_BUS_Instruction_Command_8(0x2a);
M7_BUS_Instruction_Data_8(0x00);
M7_BUS_Instruction_Data_8(0x00);
M7_BUS_Instruction_Data_8(1);
M7_BUS_Instruction_Data_8(0XDF);//480 //row start_end
M7_BUS_Instruction_Command_8(0x2b);
M7_BUS_Instruction_Data_8(0x00);
M7_BUS_Instruction_Data_8(0x00);
M7_BUS_Instruction_Data_8(1);
M7_BUS_Instruction_Data_8(15);          //272       






M7_BUS_Instruction_Command_8(0x2c);


SetM7_BUSDC();
SetM7_BUSRD();
ClrM7_BUSCS();


//i=16;
//while(i--)
//{

for (j=34;j>0;j--)
{
for(k=120;k>0;k--)
{
//M7_BUS_Data_Input(color);
M7_BUS_Data_Color_8(color);         //一次写32个点
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
M7_BUS_Data_Color_8(color);
}                  //color++;
}

SetM7_BUSCS();
}
换CPU不可能。
hys0401 发表于 2011-9-8 18:41 | 显示全部楼层
MCU接口的屏,快不到哪里去。一般能做到150ns一个cycle就不错了.

不过你这个确实太慢了点。
 楼主| chen3bing 发表于 2011-9-8 18:58 | 显示全部楼层
有那么快吗?11.0592MHZ的晶振,一个机器周期都是us级的。
不过最好还是哪位大侠给支个招。
aihe 发表于 2011-9-8 19:19 | 显示全部楼层
整屏是慢,分开慢慢刷
yadaovs 发表于 2011-9-8 22:46 | 显示全部楼层
原来是清屏啊,那显示图片怎么也得5、6秒吧
 楼主| chen3bing 发表于 2011-9-9 07:44 | 显示全部楼层
都是填充颜色,速度应该差不多。
 楼主| chen3bing 发表于 2011-9-9 09:14 | 显示全部楼层
现在刷新时间变为513.6732ms。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

439

主题

2540

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部