Mar. 14. 2018
Dependencies: GraphicsFramework GR-PEACH_video LCD_shield_config AsciiFont R_BSP USBHost_custom
main.cpp@5:49a61433290a, 2017-09-05 (annotated)
- Committer:
- dkato
- Date:
- Tue Sep 05 10:01:51 2017 +0000
- Revision:
- 5:49a61433290a
- Parent:
- 0:f5de229c9a00
Add HVC sensing result stabilizing library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dkato | 0:f5de229c9a00 | 1 | #include "mbed.h" |
dkato | 0:f5de229c9a00 | 2 | #include "DisplayBace.h" |
dkato | 0:f5de229c9a00 | 3 | #include "rtos.h" |
dkato | 0:f5de229c9a00 | 4 | #include "LCD_shield_config_4_3inch.h" |
dkato | 0:f5de229c9a00 | 5 | #include "recognition_proc.h" |
dkato | 0:f5de229c9a00 | 6 | #include "touch_proc.h" |
dkato | 0:f5de229c9a00 | 7 | |
dkato | 0:f5de229c9a00 | 8 | static DisplayBase Display; |
dkato | 0:f5de229c9a00 | 9 | static DigitalOut lcd_pwon(P7_15); |
dkato | 0:f5de229c9a00 | 10 | static DigitalOut lcd_blon(P8_1); |
dkato | 0:f5de229c9a00 | 11 | static PwmOut lcd_cntrst(P8_15); |
dkato | 5:49a61433290a | 12 | static Thread recognitionTask(osPriorityNormal, 1024 * 8); |
dkato | 0:f5de229c9a00 | 13 | static Thread touchTask; |
dkato | 0:f5de229c9a00 | 14 | |
dkato | 0:f5de229c9a00 | 15 | /****** LCD ******/ |
dkato | 0:f5de229c9a00 | 16 | static void IntCallbackFunc_LoVsync(DisplayBase::int_type_t int_type) { |
dkato | 0:f5de229c9a00 | 17 | /* Interrupt callback function for Vsync interruption */ |
dkato | 0:f5de229c9a00 | 18 | touch_lcd_int(int_type); |
dkato | 0:f5de229c9a00 | 19 | } |
dkato | 0:f5de229c9a00 | 20 | |
dkato | 0:f5de229c9a00 | 21 | static void Init_LCD_Display(void) { |
dkato | 0:f5de229c9a00 | 22 | DisplayBase::graphics_error_t error; |
dkato | 0:f5de229c9a00 | 23 | DisplayBase::lcd_config_t lcd_config; |
dkato | 0:f5de229c9a00 | 24 | PinName lvds_pin[8] = { |
dkato | 0:f5de229c9a00 | 25 | /* data pin */ |
dkato | 0:f5de229c9a00 | 26 | P5_7, P5_6, P5_5, P5_4, P5_3, P5_2, P5_1, P5_0 |
dkato | 0:f5de229c9a00 | 27 | }; |
dkato | 0:f5de229c9a00 | 28 | |
dkato | 0:f5de229c9a00 | 29 | lcd_pwon = 0; |
dkato | 0:f5de229c9a00 | 30 | lcd_blon = 0; |
dkato | 0:f5de229c9a00 | 31 | Thread::wait(100); |
dkato | 0:f5de229c9a00 | 32 | lcd_pwon = 1; |
dkato | 0:f5de229c9a00 | 33 | lcd_blon = 1; |
dkato | 0:f5de229c9a00 | 34 | |
dkato | 0:f5de229c9a00 | 35 | Display.Graphics_Lvds_Port_Init(lvds_pin, 8); |
dkato | 0:f5de229c9a00 | 36 | |
dkato | 0:f5de229c9a00 | 37 | /* Graphics initialization process */ |
dkato | 0:f5de229c9a00 | 38 | lcd_config = LcdCfgTbl_LCD_shield; |
dkato | 0:f5de229c9a00 | 39 | error = Display.Graphics_init(&lcd_config); |
dkato | 0:f5de229c9a00 | 40 | if (error != DisplayBase::GRAPHICS_OK) { |
dkato | 0:f5de229c9a00 | 41 | printf("Line %d, error %d\n", __LINE__, error); |
dkato | 0:f5de229c9a00 | 42 | mbed_die(); |
dkato | 0:f5de229c9a00 | 43 | } |
dkato | 0:f5de229c9a00 | 44 | |
dkato | 0:f5de229c9a00 | 45 | /* Interrupt callback function setting (Vsync signal output from scaler 0) */ |
dkato | 0:f5de229c9a00 | 46 | error = Display.Graphics_Irq_Handler_Set(DisplayBase::INT_TYPE_S0_LO_VSYNC, 0, IntCallbackFunc_LoVsync); |
dkato | 0:f5de229c9a00 | 47 | if (error != DisplayBase::GRAPHICS_OK) { |
dkato | 0:f5de229c9a00 | 48 | printf("Line %d, error %d\n", __LINE__, error); |
dkato | 0:f5de229c9a00 | 49 | mbed_die(); |
dkato | 0:f5de229c9a00 | 50 | } |
dkato | 0:f5de229c9a00 | 51 | } |
dkato | 0:f5de229c9a00 | 52 | |
dkato | 0:f5de229c9a00 | 53 | /****** main ******/ |
dkato | 0:f5de229c9a00 | 54 | int main(void) { |
dkato | 0:f5de229c9a00 | 55 | /* Initialization of LCD */ |
dkato | 0:f5de229c9a00 | 56 | Init_LCD_Display(); |
dkato | 0:f5de229c9a00 | 57 | |
dkato | 0:f5de229c9a00 | 58 | /* Start recognition processing */ |
dkato | 0:f5de229c9a00 | 59 | recognitionTask.start(callback(recognition_task, &Display)); |
dkato | 0:f5de229c9a00 | 60 | |
dkato | 0:f5de229c9a00 | 61 | /* Start touch panel processing */ |
dkato | 0:f5de229c9a00 | 62 | touchTask.start(callback(touch_task, &Display)); |
dkato | 0:f5de229c9a00 | 63 | |
dkato | 0:f5de229c9a00 | 64 | /* Backlight on */ |
dkato | 0:f5de229c9a00 | 65 | Thread::wait(200); |
dkato | 0:f5de229c9a00 | 66 | lcd_cntrst.write(1.0); |
dkato | 0:f5de229c9a00 | 67 | |
dkato | 0:f5de229c9a00 | 68 | /* Wait for the threads to finish */ |
dkato | 0:f5de229c9a00 | 69 | recognitionTask.join(); |
dkato | 0:f5de229c9a00 | 70 | touchTask.join(); |
dkato | 0:f5de229c9a00 | 71 | } |