GUI_DispStringAt speed problem

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
EdHa_4455331
Level 5
Level 5
25 replies posted 25 sign-ins 10 replies posted

The string rendering function GUI_DispStringAt() in emWin seems to be a real dog. I can type faster than it can render text to the display.

Anybody have any tricks on how to speed it up or a viable alternative that doesn't require the complete replacement of emWin?

Thanks,

Ed H.

0 Likes
1 Solution

OK, I'll eat a little crow on this one. Yes, it you do a GUI_DispStringAt() directly to a LCD on a serial bus, the performance is abysmal. HOWEVER... If you do the GUI_DispStringAt()  to a small memory device and then follow up with a GUI_MEMDEV_CopyToLCD(), the performance is quite snappy.

View solution in original post

3 Replies
DheerajK_81
Moderator
Moderator
Moderator
First comment on KBA First comment on blog 5 questions asked

I have not seen any problems with this function before. It is hard to tell what's going wrong here, since it can be an EmWin configuration issue.

What is the display, display driver, display interface and device being used? Please attach your project if possible.

Regards,
Dheeraj

0 Likes

I've had a little more time to dig into this issue.

The problem seems to be that emWin writes out the bitmap one bit at a time. This may be OK on a parallel interface, but I have a serial interface on a shared SPI bus. So each call has to go through the SPI driver and do an exchange over the SPI bus, all of which slows down the overall speed.

An improvement would be for emWin to write a column at a time instead of a bit at a time. But I suppose there is nothing we can do about that.

0 Likes

OK, I'll eat a little crow on this one. Yes, it you do a GUI_DispStringAt() directly to a LCD on a serial bus, the performance is abysmal. HOWEVER... If you do the GUI_DispStringAt()  to a small memory device and then follow up with a GUI_MEMDEV_CopyToLCD(), the performance is quite snappy.