完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
[C] 纯文本查看 复制代码
UCOSIII+UCGUI+战舰+原子4.3电容屏[C] 纯文本查看 复制代码 自己参考网上的方法做了画点,画线,填充矩形,16bpp的优化,但我的刷屏速度只有这样:[C] 纯文本查看 复制代码 [C] 纯文本查看 复制代码 看到别人的刷屏都是900万像素每秒,甚至3000万,牛人帮我看看程序[C] 纯文本查看 复制代码 画线:[C] 纯文本查看 复制代码 /*********************************************************************** LCD_L0_DrawHLine*/void LCD_L0_DrawHLine (int x0, int y, int x1) {u16 f; if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) { for (; x0 <= x1; x0++) { LCD_L0_XorPixel(x0, y); } } else {f = x1 - x0 + 1;LCD_SetCursor(x0, y);//设置光标LCDX->LCD_REG=lcddev.wramcmd;//写入GRAM for (; f > 0;f --) {LCDX->LCD_RAM=LCD_COLORINDEX; //LCD_L0_SetPixelIndex(x0, y, LCD_COLORINDEX); } }}[C] 纯文本查看 复制代码 /*********************************************************************** 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); } }} 填充矩形: [C] 纯文本查看 复制代码 /*********************************************************************** LCD_L0_FillRect*/void LCD_L0_FillRect(int x0, int y0, int x1, int y1) {u16 i , j;u16 xlen;xlen = x1 - x0 + 1; for(i = y0; i <= y1; i++){ LCD_SetCursor(x0, i);LCDX->LCD_REG=lcddev.wramcmd; for(j = 0; j < xlen; j++)LCDX->LCD_RAM = LCD_COLORINDEX; }// for (; y0 <= y1; y0++) {// LCD_L0_DrawHLine(x0, y0, x1);// }}16bpp: (这里优化后刷控件速度快多了)[C] 纯文本查看 复制代码 /*********************************************************************** Draw Bitmap 16 BPP*/#if (LCD_BITSPERPIXEL > 8)static void DrawBitLine16BPP(int x, int y, U16 const GUI_UNI_PTR * p, int xsize, const LCD_PIXELINDEX * pTrans) { LCD_PIXELINDEX pixel; if ((GUI_Context.DrawMode & LCD_DRAWMODE_TRANS) == 0) { if (pTrans) {LCD_SetCursor(x, y);LCDX->LCD_REG=lcddev.wramcmd; for (; xsize > 0; xsize--, x++, p++) { pixel = *p;LCDX->LCD_RAM = *(pTrans + pixel);// LCD_L0_SetPixelIndex(x, y, *(pTrans + pixel)); } } else {LCD_SetCursor(x, y);LCDX->LCD_REG=lcddev.wramcmd; for (;xsize > 0; xsize--, x++, p++) {LCDX->LCD_RAM = *p;// LCD_L0_SetPixelIndex(x, y, *p); } } } else { if (pTrans) {LCD_SetCursor(x, y);LCDX->LCD_REG=lcddev.wramcmd; for (; xsize > 0; xsize--, x++, p++) { pixel = *p; if (pixel) {LCDX->LCD_RAM = *(pTrans + pixel);// LCD_L0_SetPixelIndex(x, y, *(pTrans + pixel)); } } } else {LCD_SetCursor(x, y);LCDX->LCD_REG=lcddev.wramcmd; for (; xsize > 0; xsize--, x++, p++) { pixel = *p; if (pixel) {LCDX->LCD_RAM = pixel;// LCD_L0_SetPixelIndex(x, y, pixel); } } } }}希望优化到看不见刷屏,现在还是能看见从上到下的刷屏 |
|
相关推荐
44个回答
|
|
首先你是什么型号的STM32?900万 甚至3000万那是拿RA8875的LCD控制器刷出来的,RA8875可以开挂的,具有硬件2D绘图。如果你使用的是ILI9341等LCD控制器,就别想有这么高的分数了,103基本刷出来的就是250W左右。还有网上有的还甚至是否用的NXP的单片机,带有LCD控制器,那个分数也很高的。STM32F429我见过最高刷到5500W的!内部使用LTDC。
|
|
|
|
你好,我用的是原子哥的战舰开发板,STM32F103 72M主频
LCD是原子哥的4.3寸电容屏分辨率800*480 nt35510LCD控制器 我刚才优化了画垂直线,现在能跑223W,是不是已经到头了? 如果使用MemDev先放到内存上,然后copytoLCD会好很多? |
|
|
|
不会的,high Speed是用来测试打点速度的,你用MemDev最终还是要在屏幕上打点的。而且使用MemDev只是为了防止屏幕闪烁,对于打点没有任何提升。
|
|
|
|
|
|
|
|
407原子4.3寸屏的可以有1千2百
|
|
|
|
换407就能这么快啊!!!看来又要打板子了。。。。
|
|
|
|
只是407就可以吗?有没有特殊的速度优化之类的?我2楼贴过程序,帮我看看我的优化有哪里不合适
|
|
|
|
103 我弄过 只有两百多。我做YT时刷得很慢,就改用407了。
|
|
|
|
看来200W是极限了,前两天刚画好了407的板子,液晶屏和原子哥的不兼容,后悔死了,还得做一次
|
|
|
|
回复【8楼】蘑菇:
------------------------------ 画点 画线 填充矩形 都是用原子的的程序 ? ?我是菜鸟16pp的优化不是自己写的 ?是由原子的填充矩形该来的 |
|
|
|
原来论坛里有个叫Eric2013的GUI大牛,说“要充分利用LCD的坐标点自增”确实好用,你试试,还有“减少函数调用,可以减少入栈出栈”,说不定可以跑出更NB的速度
|
|
|
|
不知道原子哥的f4板子的能有多快。好期待!!
|
|
|
|
好 有空试试 ??
|
|
|
|
11月几号出来着?一出来我就买一块。很早以前问过原子哥,后来买了一块红龙,不好用
|
|
|
|
|
|
|
|
同样学生,砸锅卖铁
|
|
|
|
你刷1千两百多万的时候有没有带操作系统,如果没有操作系统的话定时器定的多长时间,还有就是读点有没有问题。
|
|
|
|
没带 ?读点函数没问题 ? ?第二个问题就不清楚了,是什么意思,我不怎么理解(菜鸟,望理解)
|
|
|
|
带操作系统是不是跑不了这么高?ucosiii
|
|
|
|
只有小组成员才能发言,加入小组>>
684 浏览 0 评论
1100 浏览 1 评论
2465 浏览 5 评论
2799 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2638 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
649浏览 9评论
645浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
776浏览 6评论
620浏览 5评论
662浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 17:37 , Processed in 1.652657 second(s), Total 117, Slave 97 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号