Jump to content

shilow

Members
  • Posts

    17
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by shilow

  1. Error like this:

    C:/ARM/ugfx/drivers/gdisp/ILI9481/gdisp_lld_ILI9481.c: In function 'gdisp_lld_control':
    C:/ARM/ugfx/drivers/gdisp/ILI9481/gdisp_lld_ILI9481.c:251:6: error: too few arguments to function 'gdisp_lld_init'
          gdisp_lld_init();
          ^
    C:/ARM/ugfx/drivers/gdisp/ILI9481/gdisp_lld_ILI9481.c:67:16: note: declared here
     LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
                    ^
    C:/ARM/ugfx/tools/gmake_scripts/compiler_gcc.mk:242: recipe for target '.build/obj/GFXLIB/drivers/gdisp/ILI9481/gdisp_lld_ILI9481.o' failed
    cs-make.EXE: *** [.build/obj/GFXLIB/drivers/gdisp/ILI9481/gdisp_lld_ILI9481.o] Error 1

     

    Patch:

    diff --git a/drivers/gdisp/ILI9481/gdisp_lld_ILI9481.c b/drivers/gdisp/ILI9481/gdisp_lld_ILI9481.c
    index bd637f0..0f8b6c4 100644
    --- a/drivers/gdisp/ILI9481/gdisp_lld_ILI9481.c
    +++ b/drivers/gdisp/ILI9481/gdisp_lld_ILI9481.c
    @@ -248,7 +248,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
     				write_reg(g, 0x0010, 0x0000);	/* leave sleep mode */
     				release_bus(g);
     				if (g->g.Powermode != powerSleep)
    -					gdisp_lld_init();
    +					gdisp_lld_init(g);
     				break;
     			case powerSleep:
     				acquire_bus(g);

     

  2. Glad to hear that you got it working! Shilow, could you give the driver attached in xlh1460s post a final try? We'll replace the one in the repository then.

    to successfully launch I had to change the reset procedure and add the initialization section for "Devicecode == 4532"

    screen rotation function did not work correctly

    image has been mirrored

    I attach a simple demonstration project with a working driver for my LCD.

  3. Hi!

    Helped:

    GDISP_REG = 0x0003;

    GDISP_RAM = 0x1030; // for GDISP_DEFAULT_ORIENTATION == GDISP_ROTATE_PORTRAIT

    immediately after

    gfxInit();

    with GDISP_ROTATE_LANDSCAPE and 0x1038 -- image flipped vertically.

    This happens sometimes. Please try the following three things in that order:

    • Try all four orientations using gdispSetOrientation().
    gdispSetOrientation() -- spoils the image
    It already occurred several times that suppliers used different versions of the ILI93xx chip. For example, some claimed to sell ILI9325 displays but what was really delivered was an ILI9320. Please make sure that you got the correct one. You can read out the display controllers revision register (datasheet).
    it really ili9325
    Usually you get some demo code shipped with the display. If none of the above lead to a positive result, please swap the initialisation code inside /drivers/gdisp/ILI9325/gdisp_lld_ILI9325.c with the one from the demo code. Look for the gdisp_lld_init() function.

    initialisation code the same -- one to one.

    One more thing: How does your hardware setup look like? Is it a PCB or some breadboard setup? I'm curious that the filling options appear to work correctly. This could mean that there is noise on the bus. Are you using SPI or FSMC? You could also try to lower your bus frequency should the points above not work.

    ~ Tectu

    my board HY-STM32 -- its a development board, display connetcted via FSMC.

  4. Thank you very much for sharing your work! It will be reviewed and eventually included into the repository.

    Why does the output only work in main()? Did you enable the MULTITHREAD macro?

    my knowledge does not allow this to determine.

    possible problem in the stack size.

    One more question: Why do you directly access the registers of the SPI peripheral? You shouldn't mix the ChibiOS/RT HAL with your own implementation as this can cause problems.

    For proper output of commands/data on LSD, need hard synchronization of the CS, DC and outgoing data.

    DMA mode used ChibiOS does not allow it.

    Actually, I was able to do this using DMA, but the output baud LCD was very low.

×
×
  • Create New...