Advertisement
Guest User

STemWIN GUI_Exec function problem

a guest
Jul 2nd, 2015
546
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.61 KB | None | 0 0
  1. /* Init GUI */
  2. GUI_Init();
  3.  
  4. /* Create graph through all LCD screen */
  5. hGraph = GRAPH_CreateEx(0, 0, 320, 240, 0, WM_CF_SHOW, 0, GUI_ID_GRAPH0);
  6.  
  7. /* Set grids and border */
  8. GRAPH_SetGridVis(hGraph, 1);
  9. GRAPH_SetBorder(hGraph, 25, 5, 5, 5);
  10.  
  11. /* Create a curve for graph */
  12. hData = GRAPH_DATA_YT_Create(GUI_DARKGREEN, 500, 0, 20);
  13.  
  14. /* Attach curve to graph */
  15. GRAPH_AttachData(hGraph, hData);
  16.  
  17. /* Create scale for graph */
  18. hScale = GRAPH_SCALE_Create(3, GUI_TA_LEFT, GRAPH_SCALE_CF_VERTICAL, 25);
  19. /* Attach it to graph */
  20. GRAPH_AttachScale(hGraph, hScale);
  21.  
  22. /* Update EMWIN GUI = do pending tasks */
  23. /* This works, function returns non-zero, because it has some job to do */
  24. /* And it is called first time in this project */
  25. GUI_Exec();
  26.  
  27. /* Add manual data for testing if graph works */
  28. GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255));
  29. GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255));
  30. GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255));
  31. GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255));
  32. GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255));
  33. GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255));
  34.  
  35. /* Change layers for LTDC, show layer 2 on LCD */
  36. TM_ILI9341_ChangeLayers();
  37.  
  38. while (1) {
  39.     /* Here is my problem */
  40.     /* Check for pending tasks */
  41.     /* Here is function called second time and it does all pending jobs successfully */
  42.     /* Writes 6 points to graph as set some lines above */
  43.     /* But it does not return non-zero value anymore, it always returns zero value meaning no job to do anymore */
  44.     if (GUI_Exec() > 0) {
  45.         /* Toggle LED, confirm that GUI_Exec returns non-zero value */
  46.         /* This never happens, LEDs are always zero */
  47.         TM_DISCO_LedToggle(LED_ALL);
  48.          
  49.         /* Do some job if windows are updated */
  50.         /* Copy layer 1 (EMWIN drawing layer) to user-visible layer 2 to avoid flickering when fast updating graphs */
  51.         TM_ILI9341_Layer1To2();
  52.     }
  53.      
  54.     /* Every 100 ms add new value to graph */
  55.     if (TM_DELAY_Time() > 100) {
  56.         /* Reset time */
  57.         TM_DELAY_SetTime(0);
  58.          
  59.         /* Add new fake values to graph */
  60.         GRAPH_DATA_YT_AddValue(hData, 100 + 60 * sin((float)2 * (float)5 * (float)3.14 * (float)15 / (float)255));
  61.         GRAPH_DATA_YT_AddValue(hData, 100);
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement