Jump to content

cotsos

Members
  • Posts

    3
  • Joined

  • Last visited

Posts posted by cotsos

  1. I inserted HAL_Delay as a way to simulate a large blocking event. I set the timeout 0 wanting to avoid spending the timeout value waiting for an event.

    What I did was follow your instructions from 2, inserting a check for NULL, as in the code below, and seems the issue is gone :) 

    while (1)
      {
      /* USER CODE END WHILE */
    	  //
    	  HAL_Delay(50);
    	  gfxYield();
    
    	  // Get an event
    	  pe = geventEventWait(&glistener,0);
    	  if (pe != NULL){
    	  		switch (pe->type) {
    	  			case GEVENT_GWIN_BUTTON:
    	  				if (((GEventGWinButton*)pe)->gwin == ghButton1) {
                        				guiShowPage(1);
    					}
    	  				if (((GEventGWinButton*)pe)->gwin == ghButton2) {
    	  					guiShowPage(0);
     					}
    	  				break;
     					default:
    	  				break;
    	  		}}
    
      /* USER CODE BEGIN 3 */
    
      }

     

  2. 1 hour ago, Joel Bodenmann said:

    By the way: Can you share with us what kind of performance you get out of that STM32F469i-Discovery driver from the other thread? Just the overall user experience, not actual measurements. Is it so slow that you see the image being rendered or is everything blazingly fast?

    The driver is pretty much usable and quite fast, with an issue though -  ie for item locations close to the diagonal you can easily detect tearing from the panel scan when pressing / depressing for example, guess has to do with DSI in video mode which does stream the framebuffer from the ram continuously.

  3. First of all let me thank you for the ugfx, it is couple of weeks i have been playing with it and it looks awesome. 

    I have met the following issue on an STM32F469 Discovery, BareMetal, with the display and touch driver implementations from the other topic around here :)

    So in a very basic application switching between two pages with a page change button on each, when i have just the gfxYield(); and the event switch in the main function, everything works correctly. When i insert a simple delay within the main while loop, occasionally, most frequently with prolonged key presses on the buttons, I will get the button frozen in the pressed state and no further gui response - obviously with no touch input. The gui may return to responsive sometimes after some time, some other times not. 

    the main loop:

     while (1)
      {
      /* USER CODE END WHILE */
    	  //
    	  HAL_Delay(50);
    	  gfxYield();
    
    	  // Get an event
    	  		pe = geventEventWait(&glistener,0);
    	  		switch (pe->type) {
    	  		case GEVENT_GWIN_BUTTON:
    	  						if (((GEventGWinButton*)pe)->gwin == ghButton1) {
    	  							guiShowPage(1);
    
    	  						}
    	  						if (((GEventGWinButton*)pe)->gwin == ghButton2) {
    	  							guiShowPage(0);
    
    	  												}
    	  						break;
    
    	  					default:
    	  						break;
    	  		}

     

×
×
  • Create New...