OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10797|回复: 12

UCGUI3.98+UCOSIII移植后刷屏太慢

[复制链接]

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-3
在线时间
0 小时
发表于 2015-8-26 09:56:53 | 显示全部楼层 |阅读模式
5金钱
移植完之后加上demo例程,第一个High Speed Demo  显示才2W多,原子的例程高了好多好多,而且卡顿有点严重
本来想看例程对照着优化,但是有些文件都找不到,网上百度了一些优化方法,速度提高到7W多,但远远不够,希望可以指点下哪些方面可以优化,谢谢!(这个验证码有意思)

最佳答案

查看完整内容[请看2#楼]

回复【5楼】幕幽: --------------------------------- 估计是填充矩形的函数有问题
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-8-26 09:56:54 | 显示全部楼层
回复【5楼】幕幽:
---------------------------------
估计是填充矩形的函数有问题
开往春天的手扶拖拉机
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-8-26 14:11:21 | 显示全部楼层
优化一般就是打点函数、读点函数和填充函数,用我们LCD驱动的打点、读点函数和填充函数就可以了,然后就是16bpp优化,16bpp优化对于刷控件性能提升很大的
开往春天的手扶拖拉机
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-3
在线时间
0 小时
 楼主| 发表于 2015-8-26 15:09:29 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
打点、读点函数和填充函数都是用你们的,16bpp优化不知道怎么做,用的是它自带的,在IO读写方面做了点改动,现在high speed 有340W,但是demo里的Bitmaps跟彩色条无法显示了,不知道从何下手了,我用的是miniSTM32 V3.1开发板
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-8-26 15:12:37 | 显示全部楼层
回复【3楼】幕幽:
---------------------------------
你这个340W高的有点不正常,F103的FSMC优化都到不了340W,更别说Mini板了,bitmaps和彩色条无法显示估计是填充函数的问题
开往春天的手扶拖拉机
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-3
在线时间
0 小时
 楼主| 发表于 2015-8-26 15:23:08 | 显示全部楼层
回复【4楼】zuozhongkai:
---------------------------------
这边其他的都没问题,字体显示,字符串,控件,窗口,还有demo里的移动地图也可以显示,但是碰到绘图似乎就是黑的,矩形填充吗还是16bpp或者画点的有问题
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-3
在线时间
0 小时
 楼主| 发表于 2015-8-26 16:33:51 | 显示全部楼层
void LCD_L0_FillRect(int x0, int y0, int x1, int y1) 
{
LCD_Fill(x0,y0,x1,y1,LCD_COLORINDEX);
}

void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)
{          
u16 i,j;
u16 xlen=0;
u16 temp;
if((lcddev.id==0X6804)&&(lcddev.dir==1)) //6804横屏的时候特殊处理  
{
temp=sx;
sx=sy;
sy=lcddev.width-ex-1;   
ex=ey;
ey=lcddev.width-temp-1;
  lcddev.dir=0;  
  lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;    
LCD_Fill(sx,sy,ex,ey,color);  
  lcddev.dir=1;  
   lcddev.setxcmd=0X2B;
lcddev.setycmd=0X2A;    
  }else
{
xlen=ex-sx+1;  
for(i=sy;i<=ey;i++)
{
  LCD_SetCursor(sx,i);       //设置光标位置 
LCD_WriteRAM_Prepare();      //开始写入GRAM   
for(j=0;j<xlen;j++)LCD_WR_DATA(color); //设置光标位置      
}
}


改了下发现没什么变化还是改回来了,void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)使用的你们的0.0,我再百度百度>
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-3
在线时间
0 小时
 楼主| 发表于 2015-8-26 16:40:24 | 显示全部楼层
回复【6楼】zuozhongkai:
---------------------------------
/*********************************************************************
*
*       LCD_L0_DrawHLine
*/
void LCD_L0_DrawHLine  (int x0, int y,  int x1) 
{

  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
    for (; x0 <= x1; x0++) {
      LCD_L0_XorPixel(x0, y);
    }
  } else {
    for (; x0 <= x1; x0++) {
LCD_L0_SetPixelIndex(x0, y, LCD_COLORINDEX);
    }
  }


//LCD_DrawLine(x0,y,x1,y);

}

/*********************************************************************
*
*       LCD_L0_DrawVLine
*/
void LCD_L0_DrawVLine  (int x, int y0,  int y1) 
{

  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
    for (; y0 <= y1; y0++) {
      LCD_L0_XorPixel(x, y0);
    }
  } else {
    for (; y0 <= y1; y0++) {
      LCD_L0_SetPixelIndex(x, y0, LCD_COLORINDEX);
    }
  }

//LCD_DrawLine(x,y0,x,y1);
}

问题竟然在这...直接画线反而会错
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-3
在线时间
0 小时
 楼主| 发表于 2015-8-26 16:44:00 | 显示全部楼层

mini板子 哈哈,我觉得还不错,移植触摸了
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-3
在线时间
0 小时
 楼主| 发表于 2015-8-26 22:39:14 | 显示全部楼层
回复【6楼】zuozhongkai:
---------------------------------
大神  晚上刚移植完触摸,发现触摸反应很迟钝,而且high speed 只有170W  每个例子切换都会卡屏,看着特别卡...这个哪里可以优化吗
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-11-7
在线时间
0 小时
发表于 2015-11-7 15:36:33 | 显示全部楼层



使用STM32F103VC 一个测试小板子ucosII + ucgui3.9 跑的一个demo,单任务,未加触摸和鼠标,854*480的分辨率4.6寸屏,如上,不知这算高还是低。感觉屏幕刷屏还是有卡顿,尤其是绘制rand波形的时候。

回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2020-7-14
在线时间
4 小时
发表于 2020-9-30 14:15:52 | 显示全部楼层
AAAA 没有道理
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2017-9-30
在线时间
33 小时
发表于 2021-3-11 09:29:34 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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