- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.