Jump to content

Joel Bodenmann

Administrators
  • Posts

    2,620
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Joel Bodenmann

  1. I am working with a recent git version of ugfx and Chibios 18.2. 

    How recent is recent? There has been a text edit fix two months ago:  https://git.ugfx.io/uGFX/uGFX/commit/509fc7501e7bd30b1b314fc0d4838d7cdf6ac621 

     

    I'm currently on the road so I can't dive into this right now. But can you reproduce it with the most minimal test case? Eg. using gwinSetText() with a simple string parameter (no runtime buffer stuff) and setting the last argument to TRUE?
    So I guess the response to your "I suppose using dynamic text could provide a workaround, but I thought I would ask before trying too many things." statement is pretty much: That's exactly what I'd recommend you to try to track down the problem.

  2. Hmm... the board file template is definitely missing. Thank you for bringing this to our attention.

    Many of the drivers are community driven and do not originate from the official µGFX developers. We're definitely going to take better care of this in µGFX 3.0.
    We're thankful for any kind of bug reports and/or patches. Usually a forum post will do - if possible with a patch that we can just apply. Alternatively you can make a pull request on the µGFX git server.

     

    16 hours ago, tombalabomba said:

    Last but not least I have a question regarding the functions

    
    static GFXINLINE void write_index(GDisplay* g, uint16_t index)

    and 

    
    static GFXINLINE void write_data(GDisplay* g, uint16_t data)

    I guess the latter is used fr display communication. So in my case I need to implement the code for SPI communication there, right?
    Whats the purpose of the first one and is it in my case necessary to implement?

    It's correct that those functions will actually write data to your display controller (in your case) through your SPI peripheral. Most displays that are in the style of the ILI9225 have a pin called D/C or similar - sometimes it's an additional bit in the SPI frame. That bit will tell the display controller whether the data it's receiving is actual pixel data (write_data()) or commands such as changing the viewport, changing rotation or setting any other kind of register value (write_index()).

  3. If I understand you correctly the return value of the ioctl() function call is different from your observation. Could you check the value of fb-fix.line-length before passing it to the ioctl() function?

    Also, I am bit surprised that you mentioned multiple calls to the framebuffer driver initialization. I don't have all the code in my mind but that seems a bit fishy - are you using two displays?

  4. Hello and welcome to the µGFX community!

    I'd have to check the code to be sure but if I remember correctly the vfnprintg() implementation doesn't support leading zeros at the moment. If that's the case we'd be more than happy if you decide to add support for that.

  5. I'll have to look at this when I got a bit more time to understand this properly. However, unless you're in a serious memory shortage I'd recommend you not to destroy & re-create the widgets. Instead, just use gwinShow() and gwinHide() (alternatively gwinSetVisible()) to make the appropriate widget become visible.

  6. The first error is because you enabled the GDISP module but you haven't added any GDISP driver. To get started simply disable the GDISP module (and any other module!) in the µGFX configuration file (gfxconf.h).

    The other errors are most likely indicating that you haven't enabled a GOS port. You need to specify the underlying system you're using in the configuration file.

  7. I'd like to add some info: This is not a hardware problem but how your uGFX board file(s) are configured. That's the reason why you're getting better performance with a different solution. The LTDC stuff allow for a lot of different configurations - You have to go through everything and figure out what the right ones for your hardware are. Especially check on DMA2D.
    Also don't forget to set your CPU and compiler in the uGFX configuration file.

×
×
  • Create New...