/* Init GUI */ GUI_Init(); /* Create graph through all LCD screen */ hGraph = GRAPH_CreateEx(0, 0, 320, 240, 0, WM_CF_SHOW, 0, GUI_ID_GRAPH0); /* Set grids and border */ GRAPH_SetGridVis(hGraph, 1); GRAPH_SetBorder(hGraph, 25, 5, 5, 5); /* Create a curve for graph */ hData = GRAPH_DATA_YT_Create(GUI_DARKGREEN, 500, 0, 20); /* Attach curve to graph */ GRAPH_AttachData(hGraph, hData); /* Create scale for graph */ hScale = GRAPH_SCALE_Create(3, GUI_TA_LEFT, GRAPH_SCALE_CF_VERTICAL, 25); /* Attach it to graph */ GRAPH_AttachScale(hGraph, hScale); /* Update EMWIN GUI = do pending tasks */ /* This works, function returns non-zero, because it has some job to do */ /* And it is called first time in this project */ GUI_Exec(); /* Add manual data for testing if graph works */ GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255)); GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255)); GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255)); GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255)); GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255)); GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255)); /* Change layers for LTDC, show layer 2 on LCD */ TM_ILI9341_ChangeLayers(); while (1) { /* Here is my problem */ /* Check for pending tasks */ /* Here is function called second time and it does all pending jobs successfully */ /* Writes 6 points to graph as set some lines above */ /* But it does not return non-zero value anymore, it always returns zero value meaning no job to do anymore */ if (GUI_Exec() > 0) { /* Toggle LED, confirm that GUI_Exec returns non-zero value */ /* This never happens, LEDs are always zero */ TM_DISCO_LedToggle(LED_ALL); /* Do some job if windows are updated */ /* Copy layer 1 (EMWIN drawing layer) to user-visible layer 2 to avoid flickering when fast updating graphs */ TM_ILI9341_Layer1To2(); } /* Every 100 ms add new value to graph */ if (TM_DELAY_Time() > 100) { /* Reset time */ TM_DELAY_SetTime(0); /* Add new fake values to graph */ GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255)); GRAPH_DATA_YT_AddValue(hData, 100); } }