Mar. 14. 2018
Dependencies: GraphicsFramework GR-PEACH_video LCD_shield_config AsciiFont R_BSP USBHost_custom
main.cpp
- Committer:
- dkato
- Date:
- 2017-09-26
- Revision:
- 7:85ba09eb46b3
- Parent:
- 5:49a61433290a
File content as of revision 7:85ba09eb46b3:
#include "mbed.h"
#include "DisplayBace.h"
#include "rtos.h"
#include "LCD_shield_config_4_3inch.h"
#include "recognition_proc.h"
#include "touch_proc.h"
static DisplayBase Display;
static DigitalOut lcd_pwon(P7_15);
static DigitalOut lcd_blon(P8_1);
static PwmOut lcd_cntrst(P8_15);
static Thread recognitionTask(osPriorityNormal, 1024 * 8);
static Thread touchTask;
/****** LCD ******/
static void IntCallbackFunc_LoVsync(DisplayBase::int_type_t int_type) {
/* Interrupt callback function for Vsync interruption */
touch_lcd_int(int_type);
}
static void Init_LCD_Display(void) {
DisplayBase::graphics_error_t error;
DisplayBase::lcd_config_t lcd_config;
PinName lvds_pin[8] = {
/* data pin */
P5_7, P5_6, P5_5, P5_4, P5_3, P5_2, P5_1, P5_0
};
lcd_pwon = 0;
lcd_blon = 0;
Thread::wait(100);
lcd_pwon = 1;
lcd_blon = 1;
Display.Graphics_Lvds_Port_Init(lvds_pin, 8);
/* Graphics initialization process */
lcd_config = LcdCfgTbl_LCD_shield;
error = Display.Graphics_init(&lcd_config);
if (error != DisplayBase::GRAPHICS_OK) {
printf("Line %d, error %d\n", __LINE__, error);
mbed_die();
}
/* Interrupt callback function setting (Vsync signal output from scaler 0) */
error = Display.Graphics_Irq_Handler_Set(DisplayBase::INT_TYPE_S0_LO_VSYNC, 0, IntCallbackFunc_LoVsync);
if (error != DisplayBase::GRAPHICS_OK) {
printf("Line %d, error %d\n", __LINE__, error);
mbed_die();
}
}
/****** main ******/
int main(void) {
/* Initialization of LCD */
Init_LCD_Display();
/* Start recognition processing */
recognitionTask.start(callback(recognition_task, &Display));
/* Start touch panel processing */
touchTask.start(callback(touch_task, &Display));
/* Backlight on */
Thread::wait(200);
lcd_cntrst.write(1.0);
/* Wait for the threads to finish */
recognitionTask.join();
touchTask.join();
}