LCD max Touch
Dicas para usar o LCD maxTouch.
Orientação
Podemos fazer o LCD ser orientando na vertical (portrait) ou horizontal (landscape), para isso, basta seguir o roteiro a seguir:
static void configure_lcd(void){
/* Initialize display parameter */
g_ili9488_display_opt.ul_width = ILI9488_LCD_WIDTH;
g_ili9488_display_opt.ul_height = ILI9488_LCD_HEIGHT;
g_ili9488_display_opt.foreground_color = COLOR_CONVERT(COLOR_WHITE);
g_ili9488_display_opt.background_color = COLOR_CONVERT(COLOR_WHITE);
/* Initialize LCD */
ili9488_init(&g_ili9488_display_opt);
}
static void configure_lcd(void){
/* Initialize display parameter */
g_ili9488_display_opt.ul_width = ILI9488_LCD_WIDTH;
g_ili9488_display_opt.ul_height = ILI9488_LCD_HEIGHT;
g_ili9488_display_opt.foreground_color = COLOR_CONVERT(COLOR_WHITE);
g_ili9488_display_opt.background_color = COLOR_CONVERT(COLOR_WHITE);
/* Initialize LCD */
ili9488_init(&g_ili9488_display_opt);
ili9488_set_display_direction(PORTRAIT);
}
Alterar o arquivo ili9488.h
os defines de WIDTH
e HEIGTH
:
/* ILI9488 screen size */
#define ILI9488_LCD_WIDTH 480
#define ILI9488_LCD_HEIGHT 320
Altere na task_mxt
como o touch é gerencido:
if(first == 0 ){
*x = ILI9488_LCD_WIDTH - ILI9488_LCD_WIDTH*touch_event.x/4096;
*y = ILI9488_LCD_HEIGHT - ILI9488_LCD_HEIGHT*touch_event.y/4096;
first = 1;
}
Note
Note que na chamada da funcão estamos trocando, quando queremos landscape
chamamos por PORTRAIT
, isso se dá por um erro em um enumarete
fornecido pelo driver do LCD, no arquivo ili9488.h
:
enum ili9488_display_direction{
LANDSCAPE = 0,
PORTRAIT = 1
};