NuMaker emWin HMI

Committer:
csyang2
Date:
Tue Feb 27 17:03:21 2024 +0800
Revision:
6:d15151941247
Parent:
4:3d28c66231b0
Child:
9:1286ec7f3230
Update lcd and touch for M487

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 6:d15151941247 7 #include "TouchPanel.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 {
SHLIU1@OANBE02333.nuvoton.com 4:3d28c66231b0 64 #ifdef MBED_MAJOR_VERSION
SHLIU1@OANBE02333.nuvoton.com 4:3d28c66231b0 65 printf("Mbed OS version %d.%d.%d\r\n\n", MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION);
SHLIU1@OANBE02333.nuvoton.com 4:3d28c66231b0 66 #endif
csyang2 0:9d0785906425 67 //
csyang2 0:9d0785906425 68 // Before touch calibration
csyang2 0:9d0785906425 69 //
csyang2 0:9d0785906425 70 g_enable_Touch = 0;
csyang2 0:9d0785906425 71 //
csyang2 0:9d0785906425 72 // Attach Mbed tick
csyang2 0:9d0785906425 73 //
csyang2 0:9d0785906425 74 s_ticker_emWinloop.attach(&task_emWinloop, 0.001);
csyang2 0:9d0785906425 75
csyang2 0:9d0785906425 76 #if GUI_SUPPORT_TOUCH
csyang2 0:9d0785906425 77 //
csyang2 0:9d0785906425 78 // Init emWin and touch calibration
csyang2 0:9d0785906425 79 //
csyang2 0:9d0785906425 80 GUI_Init();
csyang2 0:9d0785906425 81 Init_TouchPanel();
csyang2 0:9d0785906425 82 ts_calibrate(__DEMO_TS_WIDTH__, __DEMO_TS_HEIGHT__);
csyang2 0:9d0785906425 83 #endif
csyang2 0:9d0785906425 84 //
csyang2 0:9d0785906425 85 // After touch calibration
csyang2 0:9d0785906425 86 //
csyang2 0:9d0785906425 87 g_enable_Touch = 1;
csyang2 0:9d0785906425 88 //
csyang2 0:9d0785906425 89 // Create GUI layout
csyang2 0:9d0785906425 90 //
csyang2 0:9d0785906425 91 MainTask();
csyang2 0:9d0785906425 92
csyang2 0:9d0785906425 93 while(1);
csyang2 0:9d0785906425 94 }