|
|
/*******************************************************************************
|
|
|
* Copyright(c) 2023 Levetop Semiconductor Co.,Led. All rights reserved.
|
|
|
* @file LT768_Lib.h
|
|
|
* @author UartTFT Application Team
|
|
|
* @version V1.0.0
|
|
|
* @date 2023-02-24
|
|
|
* @brief LT768x All Function Functions
|
|
|
********************************************************************************/
|
|
|
|
|
|
#ifndef _LT768_Lib_H
|
|
|
#define _LT768_Lib_H
|
|
|
#include "LT768.h"
|
|
|
#include "if_port.h"
|
|
|
#include "sincostable.h"
|
|
|
#include "bsp.h"
|
|
|
#include "module_select.h"
|
|
|
// External crystal oscillator
|
|
|
#define XI_4M 0
|
|
|
#define XI_5M 0
|
|
|
#define XI_6M 1
|
|
|
#define XI_8M 0
|
|
|
#define XI_10M 0
|
|
|
#define XI_12M 0
|
|
|
|
|
|
extern uint8_t TFT_color;
|
|
|
extern uint16_t LCD_XSIZE_TFT;
|
|
|
extern uint16_t LCD_YSIZE_TFT;
|
|
|
extern uint16_t LCD_VBPD;
|
|
|
extern uint16_t LCD_VFPD;
|
|
|
extern uint16_t LCD_VSPW;
|
|
|
extern uint16_t LCD_HBPD;
|
|
|
extern uint16_t LCD_HFPD;
|
|
|
extern uint16_t LCD_HSPW;
|
|
|
extern uint8_t gPCLKRISING;
|
|
|
extern uint8_t gHSYNCPolarity;
|
|
|
extern uint8_t gVSYNCPolarity;
|
|
|
extern uint8_t gDEPolarity;
|
|
|
|
|
|
extern uint8_t CCLK; // Core clock frequency of LT768
|
|
|
extern uint8_t MCLK; // Clock frequency of SDRAM
|
|
|
extern uint8_t SCLK; // Scan clock frequency of LCD
|
|
|
|
|
|
#define color256_black 0x00
|
|
|
#define color256_white 0xff
|
|
|
#define color256_red 0xe0
|
|
|
#define color256_green 0x1c
|
|
|
#define color256_blue 0x03
|
|
|
#define color256_yellow color256_red | color256_green
|
|
|
#define color256_cyan color256_green | color256_blue
|
|
|
#define color256_purple color256_red | color256_blue
|
|
|
|
|
|
#define color65k_black 0x0000
|
|
|
#define color65k_white 0xffff
|
|
|
#define color65k_red 0xf800
|
|
|
#define color65k_green 0x07e0
|
|
|
#define color65k_blue 0x001f
|
|
|
#define color65k_yellow color65k_red | color65k_green
|
|
|
#define color65k_cyan color65k_green | color65k_blue
|
|
|
#define color65k_purple color65k_red | color65k_blue
|
|
|
|
|
|
#define color65k_grayscale1 2113
|
|
|
#define color65k_grayscale2 2113 * 2
|
|
|
#define color65k_grayscale3 2113 * 3
|
|
|
#define color65k_grayscale4 2113 * 4
|
|
|
#define color65k_grayscale5 2113 * 5
|
|
|
#define color65k_grayscale6 2113 * 6
|
|
|
#define color65k_grayscale7 2113 * 7
|
|
|
#define color65k_grayscale8 2113 * 8
|
|
|
#define color65k_grayscale9 2113 * 9
|
|
|
#define color65k_grayscale10 2113 * 10
|
|
|
#define color65k_grayscale11 2113 * 11
|
|
|
#define color65k_grayscale12 2113 * 12
|
|
|
#define color65k_grayscale13 2113 * 13
|
|
|
#define color65k_grayscale14 2113 * 14
|
|
|
#define color65k_grayscale15 2113 * 15
|
|
|
#define color65k_grayscale16 2113 * 16
|
|
|
#define color65k_grayscale17 2113 * 17
|
|
|
#define color65k_grayscale18 2113 * 18
|
|
|
#define color65k_grayscale19 2113 * 19
|
|
|
#define color65k_grayscale20 2113 * 20
|
|
|
#define color65k_grayscale21 2113 * 21
|
|
|
#define color65k_grayscale22 2113 * 22
|
|
|
#define color65k_grayscale23 2113 * 23
|
|
|
#define color65k_grayscale24 2113 * 24
|
|
|
#define color65k_grayscale25 2113 * 25
|
|
|
#define color65k_grayscale26 2113 * 26
|
|
|
#define color65k_grayscale27 2113 * 27
|
|
|
#define color65k_grayscale28 2113 * 28
|
|
|
#define color65k_grayscale29 2113 * 29
|
|
|
#define color65k_grayscale30 2113 * 30
|
|
|
|
|
|
#define color16M_Gray 0x00c0c0c0
|
|
|
#define color16M_black 0x00000000
|
|
|
#define color16M_white 0x00ffffff
|
|
|
#define color16M_red 0x00ff0000
|
|
|
#define color16M_green 0x0000ff00
|
|
|
#define color16M_blue 0x000000ff
|
|
|
#define color16M_yellow color16M_red | color16M_green
|
|
|
#define color16M_cyan color16M_green | color16M_blue
|
|
|
#define color16M_purple color16M_red | color16M_blue
|
|
|
|
|
|
/* LCD color */
|
|
|
|
|
|
#define White TFT_bitcolor == 0 ? 0xFFFF : 0x00FFFFFF
|
|
|
#define Black TFT_bitcolor == 0 ? 0x0000 : 0x00000000
|
|
|
#define Grey TFT_bitcolor == 0 ? 0xF7DE : 0x00c0c0c0
|
|
|
#define Blue TFT_bitcolor == 0 ? 0x001F : 0x000000ff
|
|
|
#define Blue2 TFT_bitcolor == 0 ? 0x051F : 0x000000ff
|
|
|
#define Red TFT_bitcolor == 0 ? 0xF800 : 0x00ff0000
|
|
|
#define Green TFT_bitcolor == 0 ? 0x07E0 : 0x0000ff00
|
|
|
#define Cyan TFT_bitcolor == 0 ? 0x7FFF : (color16M_green | color16M_blue)
|
|
|
#define Yellow TFT_bitcolor == 0 ? 0xFFE0 : (color16M_red | color16M_green)
|
|
|
|
|
|
#define Line0 0
|
|
|
#define Line1 24
|
|
|
#define Line2 48
|
|
|
#define Line3 72
|
|
|
#define Line4 96
|
|
|
#define Line5 120
|
|
|
#define Line6 144
|
|
|
#define Line7 168
|
|
|
#define Line8 192
|
|
|
#define Line9 216
|
|
|
#define Line10 240
|
|
|
#define Line11 264
|
|
|
#define Line12 288
|
|
|
#define Line13 312
|
|
|
#define Line14 336
|
|
|
#define Line15 360
|
|
|
#define Line16 384
|
|
|
#define Line17 408
|
|
|
#define Line18 432
|
|
|
#define Line19 456
|
|
|
#define Line20 480
|
|
|
#define Line21 504
|
|
|
#define Line22 528
|
|
|
#define Line23 552
|
|
|
#define Line24 576
|
|
|
#define Line25 600
|
|
|
|
|
|
typedef struct
|
|
|
{
|
|
|
int X;
|
|
|
int Y;
|
|
|
} CPoint;
|
|
|
|
|
|
void LT768_PLL_Initial(void);
|
|
|
void LT768_SDRAM_initail(uint8_t mclk);
|
|
|
void Set_LCD_Panel(void);
|
|
|
|
|
|
void LT768_Init(void);
|
|
|
void LT_ReadParam(void);
|
|
|
|
|
|
/* Write data to memory */
|
|
|
void MPU8_8bpp_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t *data);
|
|
|
void MPU8_16bpp_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t *data);
|
|
|
void MPU8_24bpp_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t *data);
|
|
|
void MPU16_16bpp_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint16_t *data);
|
|
|
void MPU16_24bpp_Mode1_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint16_t *data);
|
|
|
void MPU16_24bpp_Mode2_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint16_t *data);
|
|
|
|
|
|
/* Hardware drawing line segment */
|
|
|
void LT768_DrawLine(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t LineColor);
|
|
|
void LT768_DrawLine_Width(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t LineColor, uint16_t Width);
|
|
|
|
|
|
/* Hardware circle */
|
|
|
void LT768_DrawCircle(uint16_t XCenter, uint16_t YCenter, uint16_t R, uint32_t CircleColor);
|
|
|
void LT768_DrawCircle_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t R, uint32_t ForegroundColor);
|
|
|
void LT768_DrawCircle_Width(uint16_t XCenter, uint16_t YCenter, uint16_t R, uint32_t CircleColor, uint32_t ForegroundColor, uint16_t Width);
|
|
|
|
|
|
/* Hardware drawing ellipse */
|
|
|
void LT768_DrawEllipse(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t EllipseColor);
|
|
|
void LT768_DrawEllipse_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
|
|
|
void LT768_DrawEllipse_Width(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t EllipseColor, uint32_t ForegroundColor, uint16_t Width);
|
|
|
|
|
|
/* Hardware drawing rectangle */
|
|
|
void LT768_DrawSquare(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t SquareColor);
|
|
|
void LT768_DrawSquare_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t ForegroundColor);
|
|
|
void LT768_DrawSquare_Width(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t SquareColor, uint32_t ForegroundColor, uint16_t Width);
|
|
|
|
|
|
/* Hardware drawing rounded rectangle */
|
|
|
void LT768_DrawCircleSquare(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X_R, uint16_t Y_R, uint32_t CircleSquareColor);
|
|
|
void LT768_DrawCircleSquare_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
|
|
|
void LT768_DrawCircleSquare_Width(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X_R, uint16_t Y_R, uint32_t CircleSquareColor, uint32_t ForegroundColor, uint16_t Width);
|
|
|
|
|
|
/* Hardware drawing triangle */
|
|
|
void LT768_DrawTriangle(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint32_t TriangleColor);
|
|
|
void LT768_DrawTriangle_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint32_t ForegroundColor);
|
|
|
void LT768_DrawTriangle_Frame(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint32_t TriangleColor, uint32_t ForegroundColor);
|
|
|
|
|
|
/* Hardware drawing quadrilateral */
|
|
|
void LT768_DrawQuadrilateral(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint32_t ForegroundColor);
|
|
|
void LT768_DrawQuadrilateral_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint32_t ForegroundColor);
|
|
|
void LT768_DrawTriangle_Frame(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint32_t TriangleColor, uint32_t ForegroundColor);
|
|
|
|
|
|
/* Hardware drawing pentagon */
|
|
|
void LT768_DrawPentagon(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint16_t X5, uint16_t Y5, uint32_t ForegroundColor);
|
|
|
void LT768_DrawPentagon_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint16_t X5, uint16_t Y5, uint32_t ForegroundColor);
|
|
|
|
|
|
/* Hardware drawing curve */
|
|
|
void LT768_DrawLeftUpCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor);
|
|
|
void LT768_DrawLeftDownCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor);
|
|
|
void LT768_DrawRightUpCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor);
|
|
|
void LT768_DrawRightDownCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor);
|
|
|
void LT768_SelectDrawCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor, uint16_t Dir);
|
|
|
|
|
|
/* Hardware drawing 1/4 ellipse */
|
|
|
void LT768_DrawLeftUpCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
|
|
|
void LT768_DrawLeftDownCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
|
|
|
void LT768_DrawRightUpCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
|
|
|
void LT768_DrawRightDownCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
|
|
|
void LT768_SelectDrawCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor, uint16_t Dir);
|
|
|
|
|
|
/* Hardware drawing cylinder */
|
|
|
uint8_t LT768_DrawCylinder(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint16_t H, uint32_t CylinderColor, uint32_t ForegroundColor, uint8_t Width);
|
|
|
|
|
|
/* Hardware drawing quadrangle */
|
|
|
void LT768_DrawQuadrangular(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint16_t X5, uint16_t Y5, uint16_t X6, uint16_t Y6, uint32_t QuadrangularColor, uint32_t ForegroundColor);
|
|
|
void LT768_DrawQuadrangular1(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t W, uint16_t H, uint32_t QuadrangularColor, uint32_t ForegroundColor, uint8_t Width);
|
|
|
/* table */
|
|
|
void LT768_MakeTable(uint16_t X1, uint16_t Y1, uint16_t W, uint16_t H, uint16_t Line, uint16_t Row, uint32_t TableColor, uint32_t ItemColor, uint32_t ForegroundColor, uint16_t width1, uint16_t width2, uint8_t mode);
|
|
|
|
|
|
/* DMA transfers data to SDRAM in linear mode */
|
|
|
void LT768_DMA_24bit_Linear(uint8_t SCS, uint8_t Clk, uint32_t flash_addr, uint32_t memory_ad, uint32_t data_num);
|
|
|
void LT768_DMA_32bit_Linear(uint8_t SCS, uint8_t Clk, uint32_t flash_addr, uint32_t memory_ad, uint32_t data_num);
|
|
|
|
|
|
/* DMA transfers data to SDRAM in block mode */
|
|
|
// void LT768_DMA_24bit_Block(uint8_t SCS,uint8_t Clk,uint16_t X1,uint16_t Y1 ,uint16_t X_W,uint16_t Y_H,uint16_t P_W,uint32_t Addr);
|
|
|
void LT768_DMA_32bit_Block(uint8_t SCS, uint8_t Clk, uint16_t X1, uint16_t Y1, uint16_t X_W, uint16_t Y_H, uint16_t P_W, uint32_t Addr);
|
|
|
|
|
|
/* Use built-in font */
|
|
|
void LT768_Select_Internal_Font_Init(uint8_t Size, uint8_t XxN, uint8_t YxN, uint8_t ChromaKey, uint8_t Alignment);
|
|
|
void LT768_Print_Internal_Font_String(uint16_t x, uint16_t y, uint32_t FontColor, uint32_t BackGroundColor, char *c);
|
|
|
|
|
|
|
|
|
/* Block transfer engine (BitBLT) */
|
|
|
void BTE_Solid_Fill(uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint16_t color, uint16_t X_W, uint16_t Y_H);
|
|
|
void LT768_BTE_Memory_Copy(uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t S1_Addr, uint16_t S1_W, uint16_t XS1, uint16_t YS1, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint16_t X_W, uint16_t Y_H);
|
|
|
void LT768_BTE_Memory_Copy_Chroma_key(uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint32_t Background_color, uint16_t X_W, uint16_t Y_H);
|
|
|
void LT768_BTE_Pattern_Fill(uint8_t P_8x8_or_16x16, uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint16_t X_W, uint16_t Y_H);
|
|
|
void LT768_BTE_Pattern_Fill_With_Chroma_key(uint8_t P_8x8_or_16x16, uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint32_t Background_color, uint16_t X_W, uint16_t Y_H);
|
|
|
void LT768_BTE_MCU_Write_MCU_16bit(uint32_t S1_Addr, uint16_t S1_W, uint16_t XS, uint16_t YS1, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint16_t X_W, uint16_t Y_H, const uint16_t *data);
|
|
|
void LT768_BTE_MCU_Write_Chroma_key_MCU_16bit(uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint32_t Background_color, uint16_t X_W, uint16_t Y_H, const uint16_t *data);
|
|
|
void LT768_BTE_MCU_Write_ColorExpansion_MCU_16bit(uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint16_t X_W, uint16_t Y_H, uint32_t Foreground_color, uint32_t Background_color, const uint16_t *data);
|
|
|
void LT768_BTE_MCU_Write_ColorExpansion_Chroma_key_MCU_16bit(uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint16_t X_W, uint16_t Y_H, uint32_t Foreground_color, const uint16_t *data);
|
|
|
void BTE_Alpha_Blending(uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t S1_Addr, uint16_t S1_W, uint16_t XS1, uint16_t YS1, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint16_t X_W, uint16_t Y_H, uint8_t alpha);
|
|
|
void LT768_BTE_Memory_Copy_1(uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t S1_Addr, uint16_t S1_W, uint16_t XS1, uint16_t YS1, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint16_t X_W, uint16_t Y_H, uint8_t Pic_flag);
|
|
|
|
|
|
/* PIP */
|
|
|
void LT768_PIP_Init(uint8_t On_Off, uint8_t Select_PIP, uint32_t PAddr, uint16_t XP, uint16_t YP, uint32_t ImageWidth, uint16_t X_Dis, uint16_t Y_Dis, uint16_t X_W, uint16_t Y_H);
|
|
|
void LT768_Set_DisWindowPos(uint8_t On_Off, uint8_t Select_PIP, uint16_t X_Dis, uint16_t Y_Dis);
|
|
|
|
|
|
/* PWM */
|
|
|
void LT768_PWM0_Init(uint8_t on_off, uint8_t Clock_Divided, uint8_t Prescalar, uint16_t Count_Buffer, uint16_t Compare_Buffer);
|
|
|
void LT768_PWM1_Init(uint8_t on_off, uint8_t Clock_Divided, uint8_t Prescalar, uint16_t Count_Buffer, uint16_t Compare_Buffer);
|
|
|
void LT768_PWM0_Duty(uint16_t Compare_Buffer);
|
|
|
void LT768_PWM1_Duty(uint16_t Compare_Buffer);
|
|
|
|
|
|
/* Standby Mode */
|
|
|
void LT768_Standby(void);
|
|
|
void LT768_Wkup_Standby(void);
|
|
|
|
|
|
/* Suspend Mode */
|
|
|
void LT768_Suspend(void);
|
|
|
void LT768_Wkup_Suspend(void);
|
|
|
|
|
|
/* Sleep Mode */
|
|
|
void LT768_SleepMode(void);
|
|
|
void LT768_Wkup_Sleep(void);
|
|
|
|
|
|
void LT768_SPI_Init(uint8_t div, uint8_t cs);
|
|
|
|
|
|
void LT768_BTE_Memory_Copy_ColorExpansion_8
|
|
|
(
|
|
|
uint32_t S0_Addr // Memory start address of SO image
|
|
|
,
|
|
|
uint16_t YS0 // S0 Upper left Y coordinate of image
|
|
|
,
|
|
|
uint32_t Des_Addr // Memory start address of destination image
|
|
|
,
|
|
|
uint16_t Des_W // Width of destination image
|
|
|
,
|
|
|
uint16_t XDes // Top left X coordinate of destination image
|
|
|
,
|
|
|
uint16_t YDes // Top left Y coordinate of destination image
|
|
|
,
|
|
|
uint16_t X_W // The width of the active window
|
|
|
,
|
|
|
uint16_t Y_H // The length of the active window
|
|
|
,
|
|
|
uint32_t Foreground_color // Foreground color
|
|
|
,
|
|
|
uint32_t Background_color // Background color
|
|
|
);
|
|
|
|
|
|
void LT768_BTE_Memory_Copy_ColorExpansion_Chroma_key_8
|
|
|
(
|
|
|
uint32_t S0_Addr // Memory start address of SO image
|
|
|
,
|
|
|
uint16_t YS0 // S0 Upper left Y coordinate of image
|
|
|
,
|
|
|
uint32_t Des_Addr // Memory start address of destination image
|
|
|
,
|
|
|
uint16_t Des_W // Width of destination image
|
|
|
,
|
|
|
uint16_t XDes // Top left X coordinate of destination image
|
|
|
,
|
|
|
uint16_t YDes // Top left Y coordinate of destination image
|
|
|
,
|
|
|
uint16_t X_W // The width of the active window
|
|
|
,
|
|
|
uint16_t Y_H // The length of the active window
|
|
|
,
|
|
|
uint32_t Foreground_color // Foreground color
|
|
|
);
|
|
|
|
|
|
void LT768_DMA_24bit_Block_Or_Line_16bpp
|
|
|
(
|
|
|
uint8_t SCS // SPI : SCS£º0 SCS£º1
|
|
|
,
|
|
|
uint8_t Clk // SPI clock division parameter : SPI Clock = System Clock /{(Clk+1)*2}
|
|
|
,
|
|
|
uint16_t X1 // Location transferred to memory X1
|
|
|
,
|
|
|
uint16_t Y1 // Location transferred to memory Y1
|
|
|
,
|
|
|
uint16_t X_W // Width of DMA transmission data
|
|
|
,
|
|
|
uint16_t Y_H // Height of DMA transmission data
|
|
|
,
|
|
|
uint16_t P_W // Width of picture
|
|
|
,
|
|
|
uint32_t Addr // Flash address
|
|
|
,
|
|
|
uint32_t lay0 // Address of layer
|
|
|
,
|
|
|
uint16_t canvas_w // Layer width
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
void BTE_Pixel_16bpp_Alpha_Blending // 16-bit png image display function
|
|
|
(
|
|
|
uint32_t S0_Addr // Memory start address of SO image
|
|
|
,
|
|
|
uint16_t S0_W // S0 Width of image
|
|
|
,
|
|
|
uint16_t XS0 // S0 Top left X coordinate of image
|
|
|
,
|
|
|
uint16_t YS0 // S0 Upper left Y coordinate of image
|
|
|
,
|
|
|
uint32_t S1_Addr // Memory start address of S1 image
|
|
|
,
|
|
|
uint16_t S1_W // S1 Width of image
|
|
|
,
|
|
|
uint16_t XS1 // Top left X coordinate of S1 image
|
|
|
,
|
|
|
uint16_t YS1 // The upper left Y coordinate of S1 image
|
|
|
,
|
|
|
uint32_t Des_Addr // Memory start address of destination image
|
|
|
,
|
|
|
uint16_t Des_W // Width of destination image
|
|
|
,
|
|
|
uint16_t XDes // Top left X coordinate of destination image
|
|
|
,
|
|
|
uint16_t YDes // Top left Y coordinate of destination image
|
|
|
,
|
|
|
uint16_t X_W // The width of the active window
|
|
|
,
|
|
|
uint16_t Y_H // The length of the active window
|
|
|
);
|
|
|
|
|
|
|
|
|
void LT768_Draw_16bit
|
|
|
(
|
|
|
uint8_t SCS // SPI : SCS£º0 SCS£º1
|
|
|
,
|
|
|
uint8_t Clk // SPI clock division parameter : SPI Clock = System Clock /{(Clk+1)*2}
|
|
|
,
|
|
|
uint16_t X1 // Location transferred to memory X1
|
|
|
,
|
|
|
uint16_t Y1 // Location transferred to memory Y1
|
|
|
,
|
|
|
uint16_t X_W // Width of DMA transmission data
|
|
|
,
|
|
|
uint16_t Y_H // Height of DMA transmission data
|
|
|
,
|
|
|
uint16_t P_W // Width of picture
|
|
|
,
|
|
|
uint16_t pixel_format // Gray scale
|
|
|
,
|
|
|
uint32_t F_Color // Font color
|
|
|
,
|
|
|
uint32_t Addr // Flash address
|
|
|
,
|
|
|
uint32_t lay0 // Address of layer
|
|
|
,
|
|
|
uint16_t canvas_w // Layer width
|
|
|
);
|
|
|
|
|
|
void LT768_Draw_16bit_2
|
|
|
(
|
|
|
uint8_t SCS // SPI : SCS£º0 SCS£º1
|
|
|
,
|
|
|
uint8_t Clk // SPI clock division parameter : SPI Clock = System Clock /{(Clk+1)*2}
|
|
|
,
|
|
|
uint16_t X1 // Location transferred to memory X1
|
|
|
,
|
|
|
uint16_t Y1 // Location transferred to memory Y1
|
|
|
,
|
|
|
uint16_t X_W // Width of DMA transmission data
|
|
|
,
|
|
|
uint16_t Y_H // Height of DMA transmission data
|
|
|
,
|
|
|
uint16_t P_W // Width of picture
|
|
|
,
|
|
|
uint16_t pixel_format // Gray scale
|
|
|
,
|
|
|
uint32_t F_Color // Font color
|
|
|
,
|
|
|
uint32_t B_Color // Background color
|
|
|
,
|
|
|
uint8_t transparent // Show background se
|
|
|
,
|
|
|
uint32_t Addr // Flash address
|
|
|
,
|
|
|
uint32_t lay0 // Address of layer
|
|
|
,
|
|
|
uint16_t canvas_w // Layer width
|
|
|
);
|
|
|
|
|
|
#endif
|