forked from xuos/xiuos
register lcd device on xidatong-riscv64 on nuttx
This commit is contained in:
parent
7361d1c65f
commit
51ebd8f604
|
@ -27,6 +27,19 @@ void LcdDemo(void)
|
|||
{
|
||||
int lcd_fd = PrivOpen("/dev/lcd_dev",O_RDWR);
|
||||
LcdWriteParam disp_info;
|
||||
|
||||
disp_info.type = 0;
|
||||
disp_info.string_info.x_pos = 80;
|
||||
disp_info.string_info.y_pos = 80;
|
||||
disp_info.string_info.width = 250;
|
||||
disp_info.string_info.height = 24;
|
||||
disp_info.string_info.font_size = 24;
|
||||
disp_info.string_info.addr = "wecome test lcd";
|
||||
disp_info.string_info.font_color = GREEN;
|
||||
disp_info.string_info.back_color = BLUE;
|
||||
PrivWrite(lcd_fd, &disp_info, sizeof(LcdWriteParam));
|
||||
PrivTaskDelay(2000);
|
||||
|
||||
disp_info.type = 1;
|
||||
lv_color_t redcolor = {
|
||||
.ch = {
|
||||
|
@ -40,19 +53,10 @@ void LcdDemo(void)
|
|||
disp_info.pixel_info.y_startpos = 0;
|
||||
disp_info.pixel_info.y_endpos = 50;
|
||||
disp_info.pixel_info.pixel_color = &redcolor;
|
||||
|
||||
PrivWrite(lcd_fd, &disp_info, sizeof(LcdWriteParam));
|
||||
PrivTaskDelay(2000);
|
||||
|
||||
disp_info.type = 0;
|
||||
disp_info.string_info.x_pos = 80;
|
||||
disp_info.string_info.y_pos = 80;
|
||||
disp_info.string_info.width = 250;
|
||||
disp_info.string_info.height = 24;
|
||||
disp_info.string_info.font_size = 24;
|
||||
disp_info.string_info.addr = "wecome test lcd";
|
||||
disp_info.string_info.font_color = GREEN;
|
||||
disp_info.string_info.back_color = BLUE;
|
||||
|
||||
disp_info.type = SHOW_TRIANGLE;
|
||||
PrivWrite(lcd_fd, &disp_info, sizeof(LcdWriteParam));
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <nuttx/semaphore.h>
|
||||
#include <nuttx/time.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <nuttx/clock.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
|
@ -44,6 +45,7 @@
|
|||
#ifdef CONFIG_USER_TEST_LCD
|
||||
#ifdef CONFIG_K210_LCD
|
||||
# include "nuttx/lcd/lt768.h"
|
||||
# include "nuttx/lcd/lt768_learn.h"
|
||||
# include "nuttx/lcd/lt768_lib.h"
|
||||
# include "nuttx/lcd/if_port.h"
|
||||
#else
|
||||
|
@ -53,14 +55,6 @@
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#define PRIV_LCD_DEV "/dev/lcd_dev"
|
||||
#define MY_DISP_HOR_RES 480
|
||||
#define MY_DISP_VER_RES 272
|
||||
|
||||
#define PRIV_TOUCH_DEV "/dev/touch_dev"
|
||||
#define MY_INDEV_X 480
|
||||
#define MY_INDEV_Y 272
|
||||
|
||||
typedef uint8_t uint8;
|
||||
typedef uint16_t uint16;
|
||||
typedef uint32_t uint32;
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include "nuttx/lcd/lt768.h"
|
||||
#include "nuttx/lcd/lt768_lib.h"
|
||||
#include "nuttx/lcd/if_port.h"
|
||||
#include "nuttx/lcd/lt768_learn.h"
|
||||
#include <nuttx/board.h>
|
||||
#include <arch/board/board.h>
|
||||
#include <nuttx/fs/fs.h>
|
||||
|
@ -255,32 +256,75 @@ static ssize_t lcd_read(FAR struct file *filep, FAR char *buffer, size_t buflen)
|
|||
/****************************************************************************
|
||||
* Name: ch438_write
|
||||
****************************************************************************/
|
||||
static ssize_t lcd_write(FAR struct file *filep, FAR const char *buffer, size_t buflen)
|
||||
static ssize_t lcd_write(FAR struct file *filep, FAR const char *buffer, size_t buflen)
|
||||
{
|
||||
ssize_t ret = buflen;
|
||||
if (buffer == NULL)
|
||||
{
|
||||
return -ERROR;
|
||||
}
|
||||
}
|
||||
LcdWriteParam * show = (LcdWriteParam *)buffer;
|
||||
/* output string */
|
||||
if(0 == show->type)
|
||||
{
|
||||
LT768_Select_Internal_Font_Init(show->string_info.height, 1, 1, 1, 1);
|
||||
LT768_Print_Internal_Font_String(show->string_info.x_pos, show->string_info.y_pos, show->string_info.font_color,show->string_info.back_color,show->string_info.addr);
|
||||
return buflen;
|
||||
}
|
||||
/* output dot */
|
||||
else if(1 == show->type)
|
||||
{
|
||||
LT768_DrawSquare_Fill(show->pixel_info.x_startpos,show->pixel_info.y_startpos, show->pixel_info.x_endpos, show->pixel_info.y_endpos, *(uint32_t *)(show->pixel_info.pixel_color));
|
||||
return buflen;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
/* output string */
|
||||
switch (show->type)
|
||||
{
|
||||
|
||||
/* output string */
|
||||
case SHOW_STRING:
|
||||
LT768_DrawSquare_Fill(0, 0, LCD_XSIZE_TFT, LCD_YSIZE_TFT, WHITE);
|
||||
LT768_Select_Internal_Font_Init(show->string_info.height, 1, 1, 1, 1);
|
||||
LT768_Print_Internal_Font_String(show->string_info.x_pos, show->string_info.y_pos, show->string_info.font_color,show->string_info.back_color,show->string_info.addr);
|
||||
break;
|
||||
|
||||
/* output dot */
|
||||
case SHOW_WDOT:
|
||||
LT768_DrawSquare_Fill(0, 0, LCD_XSIZE_TFT, LCD_YSIZE_TFT, WHITE);
|
||||
LT768_DrawSquare_Fill(show->pixel_info.x_startpos,show->pixel_info.y_startpos, show->pixel_info.x_endpos, show->pixel_info.y_endpos, *(uint32_t *)(show->pixel_info.pixel_color));
|
||||
break;
|
||||
|
||||
/* output rgb */
|
||||
case SHOW_RGB:
|
||||
LT768_DrawSquare_Fill(0, 0, LCD_XSIZE_TFT, LCD_YSIZE_TFT, WHITE);
|
||||
Display_RGB();
|
||||
break;
|
||||
|
||||
/* output pip */
|
||||
case SHOW_PIP:
|
||||
LT768_DrawSquare_Fill(0, 0, LCD_XSIZE_TFT, LCD_YSIZE_TFT, WHITE);
|
||||
Display_PIP();
|
||||
break;
|
||||
|
||||
/* output Internal Font */
|
||||
case SHOW_INTERNAL_FONT:
|
||||
LT768_DrawSquare_Fill(0, 0, LCD_XSIZE_TFT, LCD_YSIZE_TFT, WHITE);
|
||||
Display_Internal_Font();
|
||||
break;
|
||||
|
||||
/* output Outside Font */
|
||||
case SHOW_OUTSIDE_FONT:
|
||||
LT768_DrawSquare_Fill(0, 0, LCD_XSIZE_TFT, LCD_YSIZE_TFT, WHITE);
|
||||
Display_Outside_Font();
|
||||
break;
|
||||
|
||||
/* output Triangle */
|
||||
case SHOW_TRIANGLE:
|
||||
LT768_DrawSquare_Fill(0, 0, LCD_XSIZE_TFT, LCD_YSIZE_TFT, WHITE);
|
||||
Display_Triangle();
|
||||
break;
|
||||
|
||||
/* output picture */
|
||||
case SHOW_PICTURE:
|
||||
LT768_DrawSquare_Fill(0, 0, LCD_XSIZE_TFT, LCD_YSIZE_TFT, WHITE);
|
||||
Display_Picture();
|
||||
break;
|
||||
|
||||
default:
|
||||
ret = -ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
/****************************************************************************
|
||||
* Name: k210_lcd_initialize
|
||||
*
|
||||
|
|
|
@ -118,7 +118,7 @@ ifeq ($(CONFIG_LCD_ILI9341),y)
|
|||
endif
|
||||
|
||||
ifeq ($(CONFIG_LCD_LT768),y)
|
||||
CSRCS += lt768.c lt768_lib.c
|
||||
CSRCS += lt768.c lt768_lib.c lt768_learn.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_LCD_LCDDRV_SPIIF),y)
|
||||
|
|
|
@ -0,0 +1,545 @@
|
|||
/*
|
||||
* Copyright (c) 2022 AIIT XUOS Lab
|
||||
* XiUOS is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file lt768_learn.c
|
||||
* @brief lt768_learn.c
|
||||
* @version 1.0
|
||||
* @author AIIT XUOS Lab
|
||||
* @date 2022.9.19
|
||||
*/
|
||||
#include <syslog.h>
|
||||
#include "nuttx/arch.h"
|
||||
#include "nuttx/lcd/lt768_learn.h"
|
||||
|
||||
const uint8_t g_Image_pen_il[256] = { /* 0X00,0X02,0X20,0X00,0X20,0X00, */
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X96,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X91,0X6A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0XA4,0X15,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XA4,0X00,0X6A,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0XA9,0X01,0X1A,0XAA,0XAA,0XAA,0XAA,0XAA,0XA9,0X00,0X46,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0X40,0X51,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X90,0X14,0X6A,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0XA4,0X05,0X1A,0XAA,0XAA,0XAA,0XAA,0XAA,0XA9,0X01,0X46,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0X40,0X51,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X90,0X14,0X6A,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XA4,0X05,0X1A,0XAA,0XAA,0XAA,0XAA,0XAA,0XA9,0X01,0X46,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0X40,0X51,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X90,0X14,0X69,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0XA4,0X01,0X14,0X6A,0XAA,0XAA,0XAA,0XAA,0XA9,0X00,0X44,0X1A,0XAA,
|
||||
0XAA,0XAA,0XAA,0XAA,0X40,0X11,0X06,0XAA,0XAA,0XAA,0XAA,0XAA,0X90,0X04,0X41,0XAA,
|
||||
0XAA,0XAA,0XAA,0XAA,0XA4,0X01,0X10,0X6A,0XAA,0XAA,0XAA,0XAA,0XA9,0X00,0X44,0X1A,
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0X40,0X11,0X1A,0XAA,0XAA,0XAA,0XAA,0XAA,0X90,0X04,0X1A,
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XA4,0X01,0X1A,0XAA,0XAA,0XAA,0XAA,0XAA,0XA9,0X00,0X1A,
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X40,0X6A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X95,0XAA,
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
};
|
||||
|
||||
const uint8_t g_Image_arrow_il[256] = { /* 0X00,0X02,0X20,0X00,0X20,0X00, */
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X6A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X5A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X46,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X41,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X40,0X6A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X40,0X1A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X40,0X06,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X40,0X01,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X40,0X00,0X6A,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X40,0X00,0X1A,0XAA,0XAA,0XAA,0XAA,0XAA,0X40,0X00,0X06,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X40,0X00,0X01,0XAA,0XAA,0XAA,0XAA,0XAA,0X40,0X00,0X00,0X6A,0XAA,0XAA,0XAA,0XAA,
|
||||
0X40,0X00,0X00,0X1A,0XAA,0XAA,0XAA,0XAA,0X40,0X00,0X00,0X06,0XAA,0XAA,0XAA,0XAA,
|
||||
0X40,0X00,0X00,0X01,0XAA,0XAA,0XAA,0XAA,0X40,0X00,0X00,0X00,0X6A,0XAA,0XAA,0XAA,
|
||||
0X40,0X00,0X15,0X55,0X5A,0XAA,0XAA,0XAA,0X40,0X10,0X1A,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X40,0X64,0X06,0XAA,0XAA,0XAA,0XAA,0XAA,0X41,0XA4,0X06,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X46,0XA9,0X01,0XAA,0XAA,0XAA,0XAA,0XAA,0X5A,0XA9,0X01,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0X6A,0XAA,0X40,0X6A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X40,0X6A,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0X90,0X1A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X90,0X1A,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XA4,0X06,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XA4,0X06,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XA9,0X5A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
};
|
||||
|
||||
const uint8_t g_Image_busy_im[256] = { /* 0X00,0X02,0X20,0X00,0X20,0X00, */
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X55,0X55,0X55,0X55,0X6A,0XAA,
|
||||
0XAA,0XAA,0X54,0X00,0X00,0X05,0X6A,0XAA,0XAA,0XAA,0X55,0X55,0X55,0X55,0X6A,0XAA,
|
||||
0XAA,0XAA,0X94,0X00,0X00,0X05,0XAA,0XAA,0XAA,0XAA,0X94,0X00,0X00,0X05,0XAA,0XAA,
|
||||
0XAA,0XAA,0X94,0X44,0X44,0X45,0XAA,0XAA,0XAA,0XAA,0X94,0X11,0X11,0X05,0XAA,0XAA,
|
||||
0XAA,0XAA,0X95,0X04,0X44,0X15,0XAA,0XAA,0XAA,0XAA,0XA5,0X41,0X10,0X56,0XAA,0XAA,
|
||||
0XAA,0XAA,0XA9,0X50,0X41,0X5A,0XAA,0XAA,0XAA,0XAA,0XAA,0X54,0X05,0X6A,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0X94,0X05,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X94,0X05,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0X94,0X45,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X94,0X05,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0X50,0X01,0X6A,0XAA,0XAA,0XAA,0XAA,0XA9,0X40,0X40,0X5A,0XAA,0XAA,
|
||||
0XAA,0XAA,0XA5,0X00,0X10,0X16,0XAA,0XAA,0XAA,0XAA,0X94,0X00,0X00,0X05,0XAA,0XAA,
|
||||
0XAA,0XAA,0X94,0X04,0X44,0X05,0XAA,0XAA,0XAA,0XAA,0X94,0X11,0X11,0X05,0XAA,0XAA,
|
||||
0XAA,0XAA,0X94,0X44,0X44,0X45,0XAA,0XAA,0XAA,0XAA,0X95,0X11,0X11,0X15,0XAA,0XAA,
|
||||
0XAA,0XAA,0X55,0X55,0X55,0X55,0X6A,0XAA,0XAA,0XAA,0X54,0X00,0X00,0X05,0X6A,0XAA,
|
||||
0XAA,0XAA,0X55,0X55,0X55,0X55,0X6A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
};
|
||||
|
||||
const uint8_t g_Image_no_im[256] = { /* 0X00,0X02,0X20,0X00,0X20,0X00, */
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X95,0X55,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XA9,0X40,0X00,0X5A,0XAA,0XAA,0XAA,0XAA,0X94,0X00,0X00,0X05,0XAA,0XAA,
|
||||
0XAA,0XAA,0X40,0X00,0X00,0X00,0X6A,0XAA,0XAA,0XA9,0X00,0X15,0X55,0X00,0X1A,0XAA,
|
||||
0XAA,0XA4,0X00,0X6A,0XAA,0X50,0X06,0XAA,0XAA,0XA4,0X00,0X6A,0XAA,0XA4,0X06,0XAA,
|
||||
0XAA,0X90,0X00,0X1A,0XAA,0XA9,0X01,0XAA,0XAA,0X90,0X10,0X06,0XAA,0XA9,0X01,0XAA,
|
||||
0XAA,0X40,0X64,0X01,0XAA,0XAA,0X40,0X6A,0XAA,0X40,0X69,0X00,0X6A,0XAA,0X40,0X6A,
|
||||
0XAA,0X40,0X6A,0X40,0X1A,0XAA,0X40,0X6A,0XAA,0X40,0X6A,0X90,0X06,0XAA,0X40,0X6A,
|
||||
0XAA,0X40,0X6A,0XA4,0X01,0XAA,0X40,0X6A,0XAA,0X40,0X6A,0XA9,0X00,0X6A,0X40,0X6A,
|
||||
0XAA,0X40,0X6A,0XAA,0X40,0X1A,0X40,0X6A,0XAA,0X90,0X1A,0XAA,0X90,0X05,0X01,0XAA,
|
||||
0XAA,0X90,0X1A,0XAA,0XA4,0X00,0X01,0XAA,0XAA,0XA4,0X06,0XAA,0XA9,0X00,0X06,0XAA,
|
||||
0XAA,0XA4,0X01,0X6A,0XAA,0X40,0X06,0XAA,0XAA,0XA9,0X00,0X15,0X55,0X00,0X1A,0XAA,
|
||||
0XAA,0XAA,0X40,0X00,0X00,0X00,0X6A,0XAA,0XAA,0XAA,0X94,0X00,0X00,0X05,0XAA,0XAA,
|
||||
0XAA,0XAA,0XA9,0X40,0X00,0X5A,0XAA,0XAA,0XAA,0XAA,0XAA,0X95,0X55,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
|
||||
};
|
||||
|
||||
|
||||
void Display_RGB(void)
|
||||
{
|
||||
Select_Main_Window_16bpp();
|
||||
Main_Image_Start_Address(0);
|
||||
Main_Image_Width(LCD_XSIZE_TFT);
|
||||
Main_Window_Start_XY(0,0);
|
||||
Canvas_Image_Start_address(0);
|
||||
Canvas_image_width(LCD_XSIZE_TFT);
|
||||
Active_Window_XY(0,0);
|
||||
Active_Window_WH(LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
|
||||
while(1)
|
||||
{
|
||||
BTE_Solid_Fill(0,LCD_XSIZE_TFT,0,0,RED,LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
up_mdelay(500);
|
||||
BTE_Solid_Fill(0,LCD_XSIZE_TFT,0,0,GREEN,LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
up_mdelay(500);
|
||||
BTE_Solid_Fill(0,LCD_XSIZE_TFT,0,0,BLUE,LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
up_mdelay(500);
|
||||
}
|
||||
}
|
||||
|
||||
#define Picture_1_Addr 0
|
||||
#define Picture_2_Addr (LCD_XSIZE_TFT*LCD_YSIZE_TFT*2)
|
||||
#define Picture_3_Addr (LCD_XSIZE_TFT*LCD_YSIZE_TFT*4)
|
||||
#define Picture_4_Addr (LCD_XSIZE_TFT*LCD_YSIZE_TFT*6)
|
||||
|
||||
void Display_Picture(void)
|
||||
{
|
||||
uint8_t i = 0;
|
||||
|
||||
Select_Main_Window_16bpp();
|
||||
Main_Image_Start_Address(0);
|
||||
Main_Image_Width(LCD_XSIZE_TFT);
|
||||
Main_Window_Start_XY(0,0);
|
||||
Canvas_Image_Start_address(0);
|
||||
Canvas_image_width(LCD_XSIZE_TFT);
|
||||
Active_Window_XY(0,0);
|
||||
Active_Window_WH(LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
|
||||
while(1)
|
||||
{
|
||||
for(i = 0;i < 4;i++)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
case 0:LT768_DMA_24bit_Block(1,0,0,0,LCD_XSIZE_TFT,LCD_YSIZE_TFT,LCD_XSIZE_TFT,Picture_1_Addr);break;
|
||||
case 1:LT768_DMA_24bit_Block(1,0,0,0,LCD_XSIZE_TFT,LCD_YSIZE_TFT,LCD_XSIZE_TFT,Picture_2_Addr);break;
|
||||
case 2:LT768_DMA_24bit_Block(1,0,0,0,LCD_XSIZE_TFT,LCD_YSIZE_TFT,LCD_XSIZE_TFT,Picture_3_Addr);break;
|
||||
case 3:LT768_DMA_24bit_Block(1,0,0,0,LCD_XSIZE_TFT,LCD_YSIZE_TFT,LCD_XSIZE_TFT,Picture_4_Addr);break;
|
||||
default: break;
|
||||
}
|
||||
up_mdelay(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Display_PIP(void)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
Select_Main_Window_16bpp();
|
||||
Main_Image_Start_Address(0);
|
||||
Main_Image_Width(LCD_XSIZE_TFT);
|
||||
Main_Window_Start_XY(0,0);
|
||||
Canvas_Image_Start_address(0);
|
||||
Canvas_image_width(LCD_XSIZE_TFT);
|
||||
Active_Window_XY(0,0);
|
||||
Active_Window_WH(LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
|
||||
BTE_Solid_Fill(0,LCD_XSIZE_TFT,0,0,BLUE2,LCD_XSIZE_TFT,LCD_YSIZE_TFT); // 底图颜色
|
||||
BTE_Solid_Fill(LCD_XSIZE_TFT*LCD_YSIZE_TFT*2,LCD_XSIZE_TFT,0,0,RED,LCD_XSIZE_TFT,LCD_YSIZE_TFT); // PIP1颜色
|
||||
BTE_Solid_Fill(LCD_XSIZE_TFT*LCD_YSIZE_TFT*4,LCD_XSIZE_TFT,0,0,GREEN,LCD_XSIZE_TFT,LCD_YSIZE_TFT); // PIP2颜色
|
||||
|
||||
LT768_PIP_Init(1,1,LCD_XSIZE_TFT*LCD_YSIZE_TFT*2,250,250,1024,0,175,250,250); // 初始化PIP1
|
||||
LT768_PIP_Init(1,2,LCD_XSIZE_TFT*LCD_YSIZE_TFT*4,300,300,1024,774,150,300,300); // 初始化PIP2
|
||||
|
||||
while(1)
|
||||
{
|
||||
for(i=0;i<550;i=i+2)
|
||||
{
|
||||
LT768_Set_DisWindowPos(1,1,i,175);
|
||||
LT768_Set_DisWindowPos(1,2,734-i,150);
|
||||
up_mdelay(5);
|
||||
}
|
||||
|
||||
for(i=0;i<550;i=i+2)
|
||||
{
|
||||
LT768_Set_DisWindowPos(1,1,550-i,175);
|
||||
LT768_Set_DisWindowPos(1,2,734-550+i,150);
|
||||
up_mdelay(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Display_Internal_Font(void)
|
||||
{
|
||||
char c[2] = "0";
|
||||
unsigned int i = 0;
|
||||
unsigned int x = 0;
|
||||
unsigned int y = 0;
|
||||
unsigned int z = 0;
|
||||
|
||||
Select_Main_Window_16bpp();
|
||||
Main_Image_Start_Address(0);
|
||||
Main_Image_Width(LCD_XSIZE_TFT);
|
||||
Main_Window_Start_XY(0,0);
|
||||
Canvas_Image_Start_address(0);
|
||||
Canvas_image_width(LCD_XSIZE_TFT);
|
||||
Active_Window_XY(0,0);
|
||||
Active_Window_WH(LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
|
||||
while(1)
|
||||
{
|
||||
LT768_DrawSquare_Fill(0,0,LCD_XSIZE_TFT,LCD_YSIZE_TFT,BLUE2);
|
||||
|
||||
LT768_Select_Internal_Font_Init(16,1,1,0,0);
|
||||
LT768_Print_Internal_Font_String(0,10,BLACK,BLUE2,"Embedded 8x16 ASCII Character");
|
||||
|
||||
LT768_Select_Internal_Font_Init(24,1,1,0,0);
|
||||
LT768_Print_Internal_Font_String(0,30,BLUE,BLUE2,"Embedded 12x24 ASCII Character");
|
||||
|
||||
LT768_Select_Internal_Font_Init(32,1,1,0,0);
|
||||
LT768_Print_Internal_Font_String(0,55,GREEN,BLUE2,"Embedded 16x32 ASCII Character");
|
||||
|
||||
LT768_Print_Internal_Font_String(0,95,RED,BLUE2,"The Text Cursor");
|
||||
|
||||
for(i = 0 ; i < 14 ; i++)
|
||||
{
|
||||
up_mdelay(100);
|
||||
LT768_Text_cursor_Init(1,15,1+i,15-i);
|
||||
}
|
||||
up_mdelay(100);
|
||||
LT768_Text_cursor_Init(1,15,10,2);
|
||||
|
||||
|
||||
c[0] = '0';
|
||||
for(i = 0 ; i < 10 ; i++)
|
||||
{
|
||||
up_mdelay(50);
|
||||
LT768_Print_Internal_Font_String(10+16*i,135,RED,BLUE2,&c[0]);
|
||||
c[0]++;
|
||||
}
|
||||
|
||||
c[0] = 0;
|
||||
x = 0;
|
||||
y = 175;
|
||||
z = 0;
|
||||
for(i = 0 ; i < 127 ; i++)
|
||||
{
|
||||
up_mdelay(50);
|
||||
x = z * 16;
|
||||
z++;
|
||||
if(x>1024)
|
||||
{
|
||||
y = y + 40;
|
||||
x = 0;
|
||||
z = 0;
|
||||
}
|
||||
|
||||
LT768_Print_Internal_Font_String(x,y,RED,BLUE2,&c[0]);
|
||||
c[0]++;
|
||||
}
|
||||
|
||||
up_mdelay(1000);
|
||||
up_mdelay(1000);
|
||||
|
||||
|
||||
LT768_DMA_24bit_Block(1,0,200,300,600,280,1024,Picture_3_Addr);
|
||||
|
||||
LT768_Graphic_cursor_Init(1,0xff,0x00,0,0,(uint8_t*)g_Image_pen_il);
|
||||
LT768_Graphic_cursor_Init(2,0xff,0x00,0,0,(uint8_t*)g_Image_arrow_il);
|
||||
LT768_Graphic_cursor_Init(3,0xff,0x00,0,0,(uint8_t*)g_Image_busy_im);
|
||||
LT768_Graphic_cursor_Init(4,0xff,0x00,0,0,(uint8_t*)g_Image_no_im);
|
||||
|
||||
|
||||
LT768_Set_Graphic_cursor_Pos(1,100,300);
|
||||
up_mdelay(500);
|
||||
LT768_Set_Graphic_cursor_Pos(2,100,300);
|
||||
up_mdelay(500);
|
||||
LT768_Set_Graphic_cursor_Pos(3,100,300);
|
||||
up_mdelay(500);
|
||||
LT768_Set_Graphic_cursor_Pos(4,100,300);
|
||||
up_mdelay(500);
|
||||
LT768_Set_Graphic_cursor_Pos(1,100,300);
|
||||
|
||||
for(i = 100 ; i < 924 ; i++)
|
||||
{
|
||||
LT768_Set_Graphic_cursor_Pos(1,i,90);
|
||||
up_mdelay(2);
|
||||
}
|
||||
|
||||
for(i = 200 ; i < 800 ; i++)
|
||||
{
|
||||
LT768_Set_Graphic_cursor_Pos(2,i,i-200);
|
||||
up_mdelay(2);
|
||||
}
|
||||
|
||||
for(i = 800 ; i > 100 ; i--)
|
||||
{
|
||||
LT768_Set_Graphic_cursor_Pos(3,i,800-i);
|
||||
up_mdelay(2);
|
||||
}
|
||||
|
||||
for(i = 924 ; i > 100 ; i--)
|
||||
{
|
||||
LT768_Set_Graphic_cursor_Pos(4,i,400);
|
||||
up_mdelay(2);
|
||||
}
|
||||
|
||||
up_mdelay(1000);
|
||||
up_mdelay(1000);
|
||||
|
||||
LT768_Disable_Text_Cursor();
|
||||
LT768_Disable_Graphic_Cursor();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#define MEMORY_ADDR_16 0x003E0D760
|
||||
#define MEMORY_ADDR_24 0x003E537E0
|
||||
#define MEMORY_ADDR_32 0x003EEBD00
|
||||
|
||||
#define FLASH_ADDR_16 0x00829150
|
||||
#define FLASH_ADDR_24 0x0078DC20
|
||||
#define FLASH_ADDR_32 0x00679A10
|
||||
|
||||
#define SIZE_16_NUM 0x00045080
|
||||
#define SIZE_24_NUM 0x0009B520
|
||||
#define SIZE_32_NUM 0x00114200
|
||||
|
||||
void Display_Outside_Font(void)
|
||||
{
|
||||
Select_Main_Window_16bpp();
|
||||
Main_Image_Start_Address(0);
|
||||
Main_Image_Width(LCD_XSIZE_TFT);
|
||||
Main_Window_Start_XY(0,0);
|
||||
Canvas_Image_Start_address(0);
|
||||
Canvas_image_width(LCD_XSIZE_TFT);
|
||||
Active_Window_XY(0,0);
|
||||
Active_Window_WH(LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
|
||||
while(1)
|
||||
{
|
||||
LT768_DrawSquare_Fill(0,0,LCD_XSIZE_TFT,LCD_YSIZE_TFT,WHITE);
|
||||
LT768_Select_Outside_Font_Init(1,0,FLASH_ADDR_16,MEMORY_ADDR_16,SIZE_16_NUM,16,1,1,0,0);
|
||||
LT768_Print_Outside_Font_String(425,50,RED,WHITE,(uint8_t*)"16X16微软雅黑字体");
|
||||
up_mdelay(500);
|
||||
Font_Width_X2();
|
||||
Font_Height_X2();
|
||||
LT768_Print_Outside_Font_String(250,75,GREY-1200,WHITE,(uint8_t*)"16X16微软雅黑字体长宽各扩1倍");
|
||||
up_mdelay(500);
|
||||
Font_Width_X3();
|
||||
Font_Height_X3();
|
||||
LT768_Print_Outside_Font_String(150,120,BLUE,WHITE,(uint8_t*)"16X16微软雅黑字体长宽各扩2倍");
|
||||
up_mdelay(500);
|
||||
Font_Width_X4();
|
||||
Font_Height_X4();
|
||||
LT768_Print_Outside_Font_String(60,178,MAGENTA,WHITE,(uint8_t*)"16X16微软雅黑字体长宽各扩3倍");
|
||||
up_mdelay(500);
|
||||
|
||||
LT768_Select_Outside_Font_Init(1,0,FLASH_ADDR_24,MEMORY_ADDR_24,SIZE_24_NUM,24,1,1,0,0);
|
||||
LT768_Print_Outside_Font_String(445,280,RED,WHITE,(uint8_t*)"24X24楷体");
|
||||
up_mdelay(500);
|
||||
Font_Width_X2();
|
||||
Font_Height_X2();
|
||||
LT768_Print_Outside_Font_String(260,315,GREEN,WHITE,(uint8_t*)"24X24楷体长宽各扩1倍");
|
||||
up_mdelay(500);
|
||||
Font_Width_X3();
|
||||
Font_Height_X3();
|
||||
LT768_Print_Outside_Font_String(150,375,CYAN,WHITE,(uint8_t*)"24X24楷体长宽各扩2倍");
|
||||
up_mdelay(500);
|
||||
Font_Width_X4();
|
||||
Font_Height_X4();
|
||||
LT768_Print_Outside_Font_String(30,455,YELLOW,WHITE,(uint8_t*)"24X24楷体长宽各扩3倍");
|
||||
up_mdelay(500);
|
||||
|
||||
LT768_Select_Outside_Font_Init(1,0,FLASH_ADDR_32,MEMORY_ADDR_32,SIZE_32_NUM,32,1,1,0,0);
|
||||
LT768_DrawSquare_Fill(0,0,LCD_XSIZE_TFT,LCD_YSIZE_TFT,WHITE);
|
||||
LT768_Print_Outside_Font_String(430,105,RED,WHITE,(uint8_t*)"32X32隶书");
|
||||
up_mdelay(500);
|
||||
Font_Width_X2();
|
||||
Font_Height_X2();
|
||||
LT768_Print_Outside_Font_String(360,165,GREEN,WHITE,(uint8_t*)"32X32隶书");
|
||||
up_mdelay(500);
|
||||
Font_Width_X3();
|
||||
Font_Height_X3();
|
||||
LT768_Print_Outside_Font_String(285,250,BLUE,WHITE,(uint8_t*)"32X32隶书");
|
||||
up_mdelay(500);
|
||||
Font_Width_X4();
|
||||
Font_Height_X4();
|
||||
LT768_Print_Outside_Font_String(220,360,YELLOW,WHITE,(uint8_t*)"32X32隶书");
|
||||
up_mdelay(500);
|
||||
}
|
||||
}
|
||||
|
||||
void Display_Triangle(void)
|
||||
{
|
||||
unsigned long i,j,h;
|
||||
unsigned long resx1,resy1,resx2,resy2,resx3,resy3;
|
||||
|
||||
Select_Main_Window_16bpp();
|
||||
Main_Image_Start_Address(0);
|
||||
Main_Image_Width(LCD_XSIZE_TFT);
|
||||
Canvas_Image_Start_address(0);
|
||||
Canvas_image_width(LCD_XSIZE_TFT);
|
||||
Active_Window_XY(0,0);
|
||||
Active_Window_WH(LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
|
||||
Main_Window_Start_XY(0,0);
|
||||
|
||||
while(1)
|
||||
{
|
||||
LT768_DrawSquare_Fill(0,0,LCD_XSIZE_TFT,LCD_YSIZE_TFT,WHITE);
|
||||
h=0;
|
||||
do
|
||||
{
|
||||
resx1=rand()%LCD_XSIZE_TFT; // 点1的x轴
|
||||
resy1=rand()%(LCD_YSIZE_TFT); // 点1的y轴
|
||||
resx2=rand()%LCD_XSIZE_TFT; // 点2的x轴
|
||||
resy2=rand()%(LCD_YSIZE_TFT); // 点2的y轴
|
||||
resx3=rand()%LCD_XSIZE_TFT; // 点3的x轴
|
||||
resy3=rand()%(LCD_YSIZE_TFT); // 点3的y轴
|
||||
i=rand()%65536; // 颜色
|
||||
j=rand()%3;
|
||||
if(j) LT768_DrawTriangle(resx1,resy1,resx2,resy2,resx3,resy3,i); // 无填充色三角形
|
||||
else LT768_DrawTriangle_Fill(resx1,resy1,resx2,resy2,resx3,resy3,i); // 填充色三角形
|
||||
h++;
|
||||
up_mdelay(120);
|
||||
}
|
||||
while(h<20);
|
||||
|
||||
h=0;
|
||||
do
|
||||
{
|
||||
resx1=rand()%LCD_XSIZE_TFT; // 点1的x轴
|
||||
resy1=rand()%(LCD_YSIZE_TFT); // 点1的y轴
|
||||
resx2=rand()%LCD_XSIZE_TFT; // 点2的x轴
|
||||
resy2=rand()%(LCD_YSIZE_TFT); // 点2的y轴
|
||||
resx3=rand()%LCD_XSIZE_TFT; // 点3的x轴
|
||||
resy3=rand()%(LCD_YSIZE_TFT); // 点3的y轴
|
||||
i=rand()%65536; // 颜色
|
||||
j=rand()%3;
|
||||
if(j) LT768_DrawTriangle(resx1,resy1,resx2,resy2,resx3,resy3,i); // 无填充色三角形
|
||||
else LT768_DrawTriangle_Fill(resx1,resy1,resx2,resy2,resx3,resy3,i); // 填充色三角形
|
||||
h++;
|
||||
up_mdelay(1);
|
||||
}
|
||||
while(h<2500);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void Tsst(void)
|
||||
{
|
||||
unsigned long i,j,h;
|
||||
unsigned long resx1,resy1,resx2,resy2,resx3,resy3;
|
||||
|
||||
Select_Main_Window_16bpp();
|
||||
Main_Image_Start_Address(0);
|
||||
Main_Image_Width(LCD_XSIZE_TFT);
|
||||
Main_Window_Start_XY(0,0);
|
||||
Canvas_Image_Start_address(0);
|
||||
Canvas_image_width(LCD_XSIZE_TFT);
|
||||
Active_Window_XY(0,0);
|
||||
Active_Window_WH(LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
|
||||
while(1)
|
||||
{
|
||||
|
||||
BTE_Solid_Fill(0,LCD_XSIZE_TFT,0,0,RED,LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
up_mdelay(600);
|
||||
BTE_Solid_Fill(0,LCD_XSIZE_TFT,0,0,GREEN,LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
up_mdelay(600);
|
||||
BTE_Solid_Fill(0,LCD_XSIZE_TFT,0,0,BLUE,LCD_XSIZE_TFT,LCD_YSIZE_TFT);
|
||||
up_mdelay(600);
|
||||
|
||||
BTE_Solid_Fill(LCD_XSIZE_TFT*LCD_YSIZE_TFT*2,LCD_XSIZE_TFT,0,0,RED,LCD_XSIZE_TFT,LCD_YSIZE_TFT); // PIP1颜色
|
||||
BTE_Solid_Fill(LCD_XSIZE_TFT*LCD_YSIZE_TFT*4,LCD_XSIZE_TFT,0,0,GREEN,LCD_XSIZE_TFT,LCD_YSIZE_TFT); // PIP2颜色
|
||||
LT768_PIP_Init(1,1,LCD_XSIZE_TFT*LCD_YSIZE_TFT*2,0,0,LCD_XSIZE_TFT,0,100,50,50); // 初始化PIP1
|
||||
LT768_PIP_Init(1,2,LCD_XSIZE_TFT*LCD_YSIZE_TFT*4,0,0,LCD_XSIZE_TFT,430,85,80,80); // 初始化PIP2
|
||||
|
||||
for(i=0;i<300;i=i+4)
|
||||
{
|
||||
LT768_Set_DisWindowPos(1,1,i,100);
|
||||
LT768_Set_DisWindowPos(1,2,430-i,85);
|
||||
up_mdelay(15);
|
||||
}
|
||||
|
||||
for(i=0;i<300;i=i+2)
|
||||
{
|
||||
LT768_Set_DisWindowPos(1,1,300-i,100);
|
||||
LT768_Set_DisWindowPos(1,2,430-300+i,85);
|
||||
up_mdelay(10);
|
||||
}
|
||||
Disable_PIP1();
|
||||
Disable_PIP2();
|
||||
|
||||
|
||||
LT768_DrawSquare_Fill(0,0,LCD_XSIZE_TFT,LCD_YSIZE_TFT,WHITE);
|
||||
h=0;
|
||||
do
|
||||
{
|
||||
resx1=rand()%LCD_XSIZE_TFT; // 点1的x轴
|
||||
resy1=rand()%(LCD_YSIZE_TFT); // 点1的y轴
|
||||
resx2=rand()%LCD_XSIZE_TFT; // 点2的x轴
|
||||
resy2=rand()%(LCD_YSIZE_TFT); // 点2的y轴
|
||||
resx3=rand()%LCD_XSIZE_TFT; // 点3的x轴
|
||||
resy3=rand()%(LCD_YSIZE_TFT); // 点3的y轴
|
||||
i=rand()%65536; // 颜色
|
||||
j=rand()%3;
|
||||
if(j) LT768_DrawTriangle(resx1,resy1,resx2,resy2,resx3,resy3,i); // 无填充色三角形
|
||||
else LT768_DrawTriangle_Fill(resx1,resy1,resx2,resy2,resx3,resy3,i); // 填充色三角形
|
||||
h++;
|
||||
up_mdelay(120);
|
||||
}
|
||||
while(h<20);
|
||||
|
||||
h=0;
|
||||
do
|
||||
{
|
||||
resx1=rand()%LCD_XSIZE_TFT; // 点1的x轴
|
||||
resy1=rand()%(LCD_YSIZE_TFT); // 点1的y轴
|
||||
resx2=rand()%LCD_XSIZE_TFT; // 点2的x轴
|
||||
resy2=rand()%(LCD_YSIZE_TFT); // 点2的y轴
|
||||
resx3=rand()%LCD_XSIZE_TFT; // 点3的x轴
|
||||
resy3=rand()%(LCD_YSIZE_TFT); // 点3的y轴
|
||||
i=rand()%65536; // 颜色
|
||||
j=rand()%3;
|
||||
if(j) LT768_DrawTriangle(resx1,resy1,resx2,resy2,resx3,resy3,i); // 无填充色三角形
|
||||
else LT768_DrawTriangle_Fill(resx1,resy1,resx2,resy2,resx3,resy3,i); // 填充色三角形
|
||||
h++;
|
||||
up_mdelay(1);
|
||||
}
|
||||
while(h<2500);
|
||||
|
||||
up_mdelay(100);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -303,7 +303,7 @@ void MPU8_24bpp_Memory_Write
|
|||
|
||||
|
||||
|
||||
void MPuint16_t_16bpp_Memory_Write
|
||||
void MPU16_16bpp_Memory_Write
|
||||
(
|
||||
uint16_t x
|
||||
, uint16_t y
|
||||
|
@ -332,7 +332,7 @@ void MPuint16_t_16bpp_Memory_Write
|
|||
Check_Mem_WR_FIFO_Empty();
|
||||
}
|
||||
|
||||
void MPuint16_t_24bpp_Mode1_Memory_Write
|
||||
void MPU16_24bpp_Mode1_Memory_Write
|
||||
(
|
||||
uint16_t x
|
||||
, uint16_t y
|
||||
|
@ -368,7 +368,7 @@ void MPuint16_t_24bpp_Mode1_Memory_Write
|
|||
}
|
||||
|
||||
|
||||
void MPuint16_t_24bpp_Mode2_Memory_Write
|
||||
void MPU16_24bpp_Mode2_Memory_Write
|
||||
(
|
||||
uint16_t x
|
||||
, uint16_t y
|
||||
|
|
|
@ -21,6 +21,18 @@
|
|||
#ifndef __LT768_H_
|
||||
#define __LT768_H_
|
||||
|
||||
typedef enum _LcdOperation
|
||||
{
|
||||
SHOW_STRING = 0,
|
||||
SHOW_WDOT,
|
||||
SHOW_RGB,
|
||||
SHOW_PIP,
|
||||
SHOW_INTERNAL_FONT,
|
||||
SHOW_OUTSIDE_FONT,
|
||||
SHOW_TRIANGLE,
|
||||
SHOW_PICTURE,
|
||||
} LcdOperation;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t x_pos;
|
||||
|
@ -44,7 +56,7 @@ typedef struct
|
|||
|
||||
typedef struct
|
||||
{
|
||||
char type; // 0:write string;1:write dot
|
||||
LcdOperation type;
|
||||
LcdPixelParam pixel_info;
|
||||
LcdStringParam string_info;
|
||||
}LcdWriteParam;
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright (c) 2022 AIIT XUOS Lab
|
||||
* XiUOS is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file lt768.h
|
||||
* @brief lt768 register relative driver, inherit from Levetop Electronics
|
||||
* @version 1.0
|
||||
* @author AIIT XUOS Lab
|
||||
* @date 2022.9.19
|
||||
*/
|
||||
|
||||
#ifndef _LT768_LEARN_H
|
||||
#define _LT768_LEARN_H
|
||||
#include "nuttx/lcd/if_port.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void Display_RGB(void);
|
||||
void Display_Picture(void);
|
||||
void Display_PIP(void);
|
||||
void Display_Internal_Font(void);
|
||||
void Display_Outside_Font(void);
|
||||
void Display_Triangle(void);
|
||||
void Tsst(void);
|
||||
|
||||
#endif
|
|
@ -99,28 +99,30 @@
|
|||
#define color16M_purple color16M_red|color16M_blue
|
||||
|
||||
/* LCD color */
|
||||
#define WHITE 0xFFFF
|
||||
#define BLACK 0x0000
|
||||
#define BLUE 0x001F
|
||||
#define BRED 0xF81F
|
||||
#define GRED 0xFFE0
|
||||
#define GBLUE 0x07FF
|
||||
#define RED 0xF800
|
||||
#define MAGENTA 0xF81F
|
||||
#define GREEN 0x07E0
|
||||
#define CYAN 0x7FFF
|
||||
#define YELLOW 0xFFE0
|
||||
#define BROWN 0xBC40
|
||||
#define BRRED 0xFC07
|
||||
#define GRAY 0x8430
|
||||
|
||||
#define DARKBLUE 0x01CF
|
||||
#define LIGHTBLUE 0x7D7C
|
||||
#define GRAYBLUE 0x5458
|
||||
#define LIGHTGREEN 0x841F
|
||||
#define LGRAY 0xC618
|
||||
#define LGRAYBLUE 0xA651
|
||||
#define LBBLUE 0x2B12
|
||||
#define WHITE 0xFFFF
|
||||
#define BLACK 0x0000
|
||||
#define BLUE 0x001F
|
||||
#define GREY 0xF7DE
|
||||
#define BRED 0xF81F
|
||||
#define GRED 0xFFE0
|
||||
#define GBLUE 0x07FF
|
||||
#define BLUE2 0x051F
|
||||
#define RED 0xF800
|
||||
#define MAGENTA 0xF81F
|
||||
#define GREEN 0x07E0
|
||||
#define CYAN 0x7FFF
|
||||
#define YELLOW 0xFFE0
|
||||
#define BROWN 0xBC40
|
||||
#define BRRED 0xFC07
|
||||
#define GRAY 0x8430
|
||||
|
||||
#define DARKBLUE 0x01CF
|
||||
#define LIGHTBLUE 0x7D7C
|
||||
#define GRAYBLUE 0x5458
|
||||
#define LIGHTGREEN 0x841F
|
||||
#define LGRAY 0xC618
|
||||
#define LGRAYBLUE 0xA651
|
||||
#define LBBLUE 0x2B12
|
||||
|
||||
|
||||
#define Line0 0
|
||||
|
@ -153,32 +155,32 @@
|
|||
void lt768_init(void);
|
||||
|
||||
/* write to memory */
|
||||
void MPuint8_t_8bpp_Memory_Write(uint16_t x,
|
||||
void MPU8_8bpp_Memory_Write(uint16_t x,
|
||||
uint16_t y,
|
||||
uint16_t w,
|
||||
uint16_t h,
|
||||
const uint8_t *data);
|
||||
void MPuint8_t_16bpp_Memory_Write(uint16_t x,
|
||||
void MPU8_16bpp_Memory_Write(uint16_t x,
|
||||
uint16_t y,
|
||||
uint16_t w,
|
||||
uint16_t h,
|
||||
const uint8_t *data);
|
||||
void MPuint8_t_24bpp_Memory_Write(uint16_t x,
|
||||
void MPU8_24bpp_Memory_Write(uint16_t x,
|
||||
uint16_t y,
|
||||
uint16_t w,
|
||||
uint16_t h,
|
||||
const uint8_t *data);
|
||||
void MPuint16_t_16bpp_Memory_Write(uint16_t x,
|
||||
void MPU16_16bpp_Memory_Write(uint16_t x,
|
||||
uint16_t y,
|
||||
uint16_t w,
|
||||
uint16_t h,
|
||||
const uint16_t *data);
|
||||
void MPuint16_t_24bpp_Mode1_Memory_Write(uint16_t x,
|
||||
void MPU16_24bpp_Mode1_Memory_Write(uint16_t x,
|
||||
uint16_t y,
|
||||
uint16_t w,
|
||||
uint16_t h,
|
||||
const uint16_t *data);
|
||||
void MPuint16_t_24bpp_Mode2_Memory_Write(uint16_t x,
|
||||
void MPU16_24bpp_Mode2_Memory_Write(uint16_t x,
|
||||
uint16_t y,
|
||||
uint16_t w,
|
||||
uint16_t h,
|
||||
|
|
Loading…
Reference in New Issue