NuMaker emWin HMI

Committer:
csyang2
Date:
Wed Feb 27 14:27:09 2019 +0800
Revision:
0:9d0785906425
Child:
4:3d28c66231b0
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
csyang2 0:9d0785906425 1 #include "mbed.h"
csyang2 0:9d0785906425 2
csyang2 0:9d0785906425 3 #include "GUI.h"
csyang2 0:9d0785906425 4 #include "WM.h"
csyang2 0:9d0785906425 5 #include "FRAMEWIN.h"
csyang2 0:9d0785906425 6
csyang2 0:9d0785906425 7 #include "M48XTouchPanel.h"
csyang2 0:9d0785906425 8 #include "tslib.h"
csyang2 0:9d0785906425 9 //
csyang2 0:9d0785906425 10 // Enable emWin touch feature after calibration
csyang2 0:9d0785906425 11 //
csyang2 0:9d0785906425 12 volatile int g_enable_Touch;
csyang2 0:9d0785906425 13 //
csyang2 0:9d0785906425 14 // For touch sampling timer
csyang2 0:9d0785906425 15 //
csyang2 0:9d0785906425 16 Ticker s_ticker_emWinloop;
csyang2 0:9d0785906425 17 //
csyang2 0:9d0785906425 18 // emWin timer count
csyang2 0:9d0785906425 19 //
csyang2 0:9d0785906425 20 extern GUI_TIMER_TIME OS_TimeMS;
csyang2 0:9d0785906425 21 //
csyang2 0:9d0785906425 22 // Tick loop for emWin and touch
csyang2 0:9d0785906425 23 //
csyang2 0:9d0785906425 24 void task_emWinloop(void)
csyang2 0:9d0785906425 25 {
csyang2 0:9d0785906425 26 OS_TimeMS++;
csyang2 0:9d0785906425 27 #if GUI_SUPPORT_TOUCH
csyang2 0:9d0785906425 28 if ( OS_TimeMS % 10 == 0 )
csyang2 0:9d0785906425 29 {
csyang2 0:9d0785906425 30 if ( g_enable_Touch == 1 )
csyang2 0:9d0785906425 31 {
csyang2 0:9d0785906425 32 GUI_TOUCH_Exec();
csyang2 0:9d0785906425 33 }
csyang2 0:9d0785906425 34 }
csyang2 0:9d0785906425 35 #endif
csyang2 0:9d0785906425 36 }
csyang2 0:9d0785906425 37 //
csyang2 0:9d0785906425 38 // Extern emWin GUI layout
csyang2 0:9d0785906425 39 //
csyang2 0:9d0785906425 40 extern WM_HWIN CreateFramewin(void);
csyang2 0:9d0785906425 41 //
csyang2 0:9d0785906425 42 // emWin MainTask to create a GUI layout
csyang2 0:9d0785906425 43 //
csyang2 0:9d0785906425 44 void MainTask(void)
csyang2 0:9d0785906425 45 {
csyang2 0:9d0785906425 46 WM_HWIN hWin;
csyang2 0:9d0785906425 47 char acVersion[40] = "Framewin: Version of emWin: ";
csyang2 0:9d0785906425 48
csyang2 0:9d0785906425 49 printf("Main Task -> \n");
csyang2 0:9d0785906425 50
csyang2 0:9d0785906425 51 strcat(acVersion, GUI_GetVersionString());
csyang2 0:9d0785906425 52 hWin = CreateFramewin();
csyang2 0:9d0785906425 53 FRAMEWIN_SetText(hWin, acVersion);
csyang2 0:9d0785906425 54 while (1)
csyang2 0:9d0785906425 55 {
csyang2 0:9d0785906425 56 GUI_Delay(500);
csyang2 0:9d0785906425 57 }
csyang2 0:9d0785906425 58 }
csyang2 0:9d0785906425 59 //
csyang2 0:9d0785906425 60 // Main
csyang2 0:9d0785906425 61 //
csyang2 0:9d0785906425 62 int main(void)
csyang2 0:9d0785906425 63 {
csyang2 0:9d0785906425 64 //
csyang2 0:9d0785906425 65 // Before touch calibration
csyang2 0:9d0785906425 66 //
csyang2 0:9d0785906425 67 g_enable_Touch = 0;
csyang2 0:9d0785906425 68 //
csyang2 0:9d0785906425 69 // Attach Mbed tick
csyang2 0:9d0785906425 70 //
csyang2 0:9d0785906425 71 s_ticker_emWinloop.attach(&task_emWinloop, 0.001);
csyang2 0:9d0785906425 72
csyang2 0:9d0785906425 73 #if GUI_SUPPORT_TOUCH
csyang2 0:9d0785906425 74 //
csyang2 0:9d0785906425 75 // Init emWin and touch calibration
csyang2 0:9d0785906425 76 //
csyang2 0:9d0785906425 77 GUI_Init();
csyang2 0:9d0785906425 78 Init_TouchPanel();
csyang2 0:9d0785906425 79 ts_calibrate(__DEMO_TS_WIDTH__, __DEMO_TS_HEIGHT__);
csyang2 0:9d0785906425 80 #endif
csyang2 0:9d0785906425 81 //
csyang2 0:9d0785906425 82 // After touch calibration
csyang2 0:9d0785906425 83 //
csyang2 0:9d0785906425 84 g_enable_Touch = 1;
csyang2 0:9d0785906425 85 //
csyang2 0:9d0785906425 86 // Create GUI layout
csyang2 0:9d0785906425 87 //
csyang2 0:9d0785906425 88 MainTask();
csyang2 0:9d0785906425 89
csyang2 0:9d0785906425 90 while(1);
csyang2 0:9d0785906425 91 }