Jump to content

quipu

Members
  • Posts

    9
  • Joined

  • Last visited

Posts posted by quipu

  1. 4 hours ago, aeroman said:

    Hi,

    i reproduced this bug and it seems related to the gdisp_lld_flush() function when writing pages segments from RAM(g) to display ram :

    with the actual  y1 <= y2 in the "for" loop, when y2 is not a multiple of UC1610_PAGE_HEIGHT, the last segment is not writed to display ram.

    I found this solution : for loop condition based on the end address of the flush window :

    
    		// write each page segment from RAM(g) to display RAM
    		for (c = RAM(g) + xyaddr(x1, y1) ; c < RAM(g) + xyaddr(x2, y2) ; c += GDISP_SCREEN_WIDTH) {
    			write_data(g, c, cx);
    		}

    it seems to work correcly.

    Hi @aeroman, great work. I will Apple your patch and i will let YouTube know asap. 

  2. @Joel Bodenmann it seems to work :D

    I tested it with the following code

    GSourceHandle upHandle = ginputGetToggle(GINPUT_TOGGLE_ESC);
     
    geventListenerInit(&pl);
    geventAttachSource(&pl, upHandle, GLISTEN_TOGGLE_ON|GLISTEN_TOGGLE_OFF);
    
    while (1)
    {
    	event = geventEventWait(&pl, 5000);
    	if(event)
    		printf("Pressed\n");
    }

    I have also added the following define in the file ginput_lld_toggle_board.h (attached) 

    Now the big questions:

    • Q1: Can I create a list that I scroll with the UP and DOWN keys?
    • Q2: If yes, when I press the MODE key can I enter another list?
    • Q3: If yes, in the second list, I can go back to the previous one by pressing the ESC key etc. 

     

    ginput_lld_toggle_board.h

  3. Other question.

    My display is custom, as shown in the attached image (pixels are rectangular).
    At this link you see the problem.
    How can I solve?
    @aeroman, is it possible to configure UC1610 to limit COM number (from 160 to 128 - registers CEN, DST, DEN)?
    Can the "Window" function help (registers WCP0, WPP0, WCP1, WPP1)?

    RCustom_UC1610_128x128.jpg.b0664470ba210d8849b080f7792930eb.jpgegards

  4. Hello @aeroman and  @Joel Bodenmann.

    Thanks for support. I followed your directions and now I see something :)

    I noticed stange behavior with this code:

    gdispDrawBox(10, 10, 64, 64, White);	/* First box without base*/
    gfxSleepMillisecond(1000);
    gdispDrawBox(0, 0, 128, 128, White);	/* Second box: drawn also base of first box ! */

    The first box does not have the base. When the second box is drawn, also the base of first box is drawn!

    You can watch the video at this link.

    Also how colors are mapped? It is correct that the White is visualized and the Black no. What are Light Gray and Dark Gray?

  5. Hello,

    I attached the project hoping it could be useful. I used STM32CubeMX and Atollic True Studio. I have a 128x128 custom display with UC1610 via I2C.
    The display shows the uGFX logduring gfxInit(), but then nothing else.

      /* Initialize and clear the display */
      gfxInit();
    
      // Get the screen size
      width = gdispGetWidth();
      height = gdispGetHeight();
    
      gdispDrawBox(10, 10, width/2, height/2, Black);
      gdispFillArea(width/2, height/2, width/2-10, height/2-10, Black);
      gdispDrawLine(5, 30, width-50, height-40, Black);
    
      for(i = 5, j = 0; i < width && j < height; i += 7, j += i/20)
       	gdispDrawPixel(i, j, White);
    
       /* Infinite loop */
      /* USER CODE BEGIN WHILE */
      while (1)
      {
    	  gfxSleepMilliseconds(500);
      }


    What could be the problem ?

    How can I debug correctly ?

     

    Thanks

    bye

    K150_uGFX.zip

×
×
  • Create New...