完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
背景:MPLAB X IDE 3.65、XC32 V1.43、和声V2.03B、定制板使用PIC32 MZ2064 DAH176、NeWavavn NHD-4.3-48022EF-ASXNα-T显示(4.3)、480X227像素、4线触摸触摸屏尽可能地尝试,我不能在启动时快速绘制LCD。我有一个480x22像素的图像(我已经尝试了JPEG和RLE),在屏幕上画得很好。事实上,我有一个3图片图像序列,每500毫秒切换图像:双缓冲,它是疯狂的快,你绝对看不到它的油漆。然而,第一张图片……有没有什么把戏来确保没有画出来?拖延是很好的,但绘画看起来很糟糕,即使它很快。这里是我的设置:一个屏幕(命名为默认),我只将项目颜色模式更改为RGBA88,使生命周期在StutuPoSere0i中持久化,并使缓冲区计数为2(默认为缺省),检查了局部重绘,检查了一次绘制,并将背景类型设置为No.I.DGET1i刚添加了三张图片。不幸的是,它不像是默认的播放。
以上来自于百度翻译 以下为原文 Background: MPLAB X IDE 3.65, XC32 v1.43, HARMony v2.03b, custom board using PIC32MZ2064DAH176, Newhaven NHD-4.3-480272EF-ASXN#-T display (4.3", 480x272 pixel, 4 wire resitive touchscreen) Try as I might, I cannot get the LCD to draw quickly on startup. I have a 480x272 pixel image (I've tried both jpeg and RLE) that paints on the screen just fine. In fact, I have a 3 picture image sequence that switches images every 500 ms: with double buffering it is crazy fast and you absolutely cannot see it paint. However, that first image... Any tricks to ensure that there is no painting shown? Delays are fine, but painting looks terrible even if it's fast. Here is my setup: one screen (named default) I only changed the Project Color Mode to RGBA_8888 and made the Life Cycle Persistent and Created At Startup Layer0 I made the Buffer Count 2 (both Auto by default), checked Local Redraw, checked Draw Once, and set the Background Type to None. ImageSequenceWidget1 I just added the three pictures. Unfortunately, it doesn't seem like Play By Default works. |
|
相关推荐
8个回答
|
|
嗨,这是我们目前正在尝试的解决方案。看看它是否适合你。在DRVIGGFXGLCDYSTOR.C中替换函数Layer-BuffelCuffTeSET,如下所示:这是GLCD驱动程序的一个固定尝试,它告诉GrcCIS库使用后备缓冲区在启动时绘制。请让我知道您的结果。
以上来自于百度翻译 以下为原文 Hi, Here is a fix we are trying at the moment. See if it works for you. Replace the function layerBufferCountSet in drv_gfx_glcd_static.c with the follow: static GFX_Result layerBufferCountSet(uint32_t count) { GFX_Layer* layer; GFX_Context* context = GFX_ActiveContext(); uint32_t i; layer = context->layer.active; if(count > BUFFER_PER_LAYER) return GFX_FAILURE; // use default implementation to initialize buffer struct defLayerBufferCountSet(count); // ensure all buffers are marked as managed by the driver so application // can't delete or modify them for(i = 0; i < layer->buffer_count; i++) { GFX_PixelBufferCreate(layer->rect.local.width, layer->rect.local.height, context->colorMode, drvLayer[layer->id].baseaddr, &layer->buffers.pb); layer->buffers.state = GFX_BS_MANAGED; if (i == 1) { //Initialize write buffer to the back buffer to prevent visible redraw layer->buffer_write_idx = i; } } return GFX_SUCCESS; } This is a fix attempt for the GLCD driver to tell the Graphcis Library to use the back buffer to draw at launch. Please let me know your result. |
|
|
|
嗨B祝福,同样的情况在这里与你的相同配置,第一个屏幕,你可以看到屏幕是如何从上到下渲染。对于具有图形处理器的快速MCU来说太慢了。我做了什么?2个屏幕,没有背景,没有在第一个屏幕上填充,在第二个屏幕上启动应用程序,所以当程序启动时,它在第一个屏幕上什么也没画,第二个屏幕像地狱一样渲染得很快。
以上来自于百度翻译 以下为原文 Hi bblessing, same situation here with the same config as yours, the first screen you can see how the screen is rendering from top to bottom.. too slow for a fast mcu with graphical processor. What I did?, 2 screens, no background and no fill on the first screen and start the application in the second screen, so when the program starts it paints nothing on the first screen and the second screen is rendered fast as hell. |
|
|
|
MHGC,你发布的解决方案工作很好,现在它画得很完美。
以上来自于百度翻译 以下为原文 MHGC, the solution you posted works fine, now it paints perfect. |
|
|
|
谢谢您。很高兴知道。我会确保把这个修复到V2.04。
以上来自于百度翻译 以下为原文 Thank you. Good to know. I will make sure to get this fix into v2.04. |
|
|
|
@ MHGC,谢谢!虽然画有简单的空白(白色),但还是照料了这幅画。我认为在这一点上是可以接受的,虽然速度总是更好:- jiggoly,我很难让你的解决方案工作。我创建了一个第二个屏幕(屏幕1),我添加了一个占据整个屏幕的单个图像。默认现在由简单的没有背景的层组成。在AppHistEngInIT中,我简单地称为LaCuTraceStActudieScCurn(Studio1SID)。我可以看到新的屏幕油漆,虽然它有点快,但仍然显示了绘画。有什么我做错了吗?
以上来自于百度翻译 以下为原文 @MHGC, Thank you! That took care of the painting, though there is a brief period when the screen is simply blank (white). I think that it's acceptable at this point, though faster is always better :-). jiggoly, I am having trouble getting your solution to work. I created a second screen (screen1) to which I added a single image that takes up the entire screen. default now consists of simply a layer with no background. In APP_STATE_INIT, I simply called laContext_SetActiveScreen(screen1_ID). I can see the new screen paint and, though it is a bit faster, still shows the painting. Is there something I'm doing wrong? |
|
|
|
B祝福,您可能希望默认背景颜色为黑色(0x0)以改善启动。你可以在MHC的GLCD部分改变它。
以上来自于百度翻译 以下为原文 bblessing, you may want to default background color to black (0x0) to improve the launch. You can change that under the GLCD section in the MHC. |
|
|
|
第一屏幕必须没有背景,没有填充和双缓冲,第二当然不要忘记设置双缓冲区。
以上来自于百度翻译 以下为原文 @bblessing the 1st screen must be no background, no fill and double buffer, the second of course don´t forget to set double buffer. |
|
|
|
@ MHGC,我仍然有短暂的瞬间白色后骑自行车的权力。我可以在硬件中解决这个问题,如果我只是电容耦合LED驱动器输出。无背光,无问题:-)。我以后会实现的。现在白应该没事了。我会淡出我们的标志,一切看起来都会好的。再次感谢!
以上来自于百度翻译 以下为原文 @MHGC, I still get a brief instantaneous blip of white after cycling power. I could solve this in hardware if I had just capacitively-coupled the LED driver output. No backlight, no problems :-). I'll implement that later. White should be fine for now. I'll just fade in our logo and everything should look alright. Thanks again! |
|
|
|
只有小组成员才能发言,加入小组>>
5184 浏览 9 评论
2005 浏览 8 评论
1932 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3179 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2230 浏览 5 评论
742浏览 1评论
629浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
512浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
640浏览 0评论
538浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 04:22 , Processed in 1.307405 second(s), Total 91, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号