GUIDRV_CompactColor_16

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • GUIDRV_CompactColor_16

    Hello, I am having trouble getting GUIDRV_CompactColor_16 driver to work. I have it installing and running GUIDRV_CompactColor_16 init code when we make the GUI_DEVICE_CreateAndLink call. But when I call Gereral APIs like clear screen, it makes no calls into the GUIDRV_CompactColor_16 driver, and because of that emWin not writing the display. I am trying to use this without a screen cache. I am running in a small memory footprint and am driving a Sitronix ST7789 chipset.

    Here is the config

    #ifndef LCDCONF_H
    #define LCDCONF_H


    #define LCD_USE_COMPACT_COLOR_16 1
    #define LCD_USE_PARALLEL_16 0
    #define LCD_USE_SERIAL_3PIN 1


    #define XSIZE_PHYS 240
    #define YSIZE_PHYS 240

    #define LCD_XSIZE XSIZE_PHYS
    #define LCD_YSIZE YSIZE_PHYS

    #define LCD_CACHE 0
    #define LCD_WRITE_BUFFER_SIZE 1



    #define LCD_CONTROLLER 66709 // Sitronix ST7789
    #define LCD_BITSPERPIXEL 16
    #define LCD_SWAP_RB 1
    #define LCD_MIRROR_Y 1

    #endif /* LCDCONF_H */


    Here is the Init code


    //*********************************************************************
    //*
    //* LCD_X_Config
    //*
    //* Purpose:
    //* Called during the initialization process in order to set up the
    //* display driver configuration.
    //*
    //*
    void LCD_X_Config(void)
    {
    //
    // Set display driver and color conversion
    //
    GUI_DEVICE_CreateAndLink(GUIDRV_COMPACT_COLOR_16, // Display driver
    GUICC_M565, // Color conversion
    0, 0);
    //
    // Display driver configuration
    //
    LCD_SetSizeEx(0, LCD_XSIZE, LCD_YSIZE);
    }
  • I think I have a good idea what is happening, the driver GUIDRV_CompactColor_16 is incomplete, or it does not work like our last project. Look we just gave Segger $1400 for access to the this driver, I have been going sideways for the last 2 weeks. Our first use was flawless working with LPC1788 LCD driver, but this time no so much. So what gives guys? How does this driver hook into emWin driver model?


    It seems to be missing all the hooks at the bottom of our working drivers from the last project. Instead it looks like it is trying to hook in via overwriting macros and function calls, IE LCD_L0_xxxxxxxx function calls. But I cannot tell since emWin is a macro nightmare.

    Maybe missing stuff GUIDRV_CompactColor_16.c in file:

    const GUI_DEVICE_API GUIDRV_CompactColor_16 = {
    //
    // Data
    //
    DEVICE_CLASS_DRIVER,
    //
    // Drawing functions
    //
    _DrawBitmap,
    _DrawHLine,
    _DrawVLine,
    _FillRect,
    _GetPixelIndex,
    _SetPixelIndex,
    _XorPixel,
    //
    // Set origin
    //
    _SetOrg,
    //
    // Request information
    //
    _GetDevFunc,
    _GetDevProp,
    _GetDevData,
    _GetRect,
    };
  • Hi,

    If you have a bought a SEGGER product, please feel free to contact us directly. Simply write to info@segger.com. It would be the best if you let us know your license number.

    I guess you are using a precompiled emWin library (such as the one coming from ST or KEIL). Unfortunately it is not possible to use a compile time configurable driver in a precompiled library.

    Regards,
    Sven
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.