1 /* 2 * Copyright (c) 2006-2021, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 */ 9 10 #ifndef LCD_GENERAL_H_INCLUDED 11 #define LCD_GENERAL_H_INCLUDED 12 13 #include <rtgui/rtgui.h> 14 #include <rtgui/driver.h> 15 #include <rtgui/rtgui_server.h> 16 #include <rtgui/rtgui_system.h> 17 18 19 #define LCDWIDTH 320 20 #define LCDHEIGHT 240 21 22 //Macro for SIZE register setting 23 #define XMAX ((LCDWIDTH/16) << 20) 24 #define YMAX (LCDHEIGHT) 25 26 //Macro for PCR register setting 27 #define TFT ((U32)1 << 31) 28 #define COLOR (1 << 30) //1为色彩. 29 #define PBSIZE (0 << 28) 30 #define BPIX (4 << 25) //存储器中一个像素对应16bit 31 #define PIXPOL (0 << 24) //像素极性—设置像素的极性,高有效 //0<<24 32 #define FLMPOL (1 << 23) //首行标志极性—设置首行标志的极性,低有效. 33 #define LPPOL (1 << 22) //行脉冲极性—设置行脉冲信号的极性,低有效. 34 #define CLKPOL (0 << 21) //LCD 移位时钟极性—设置LCD 移位时钟的有效沿的极性,下降延有效. 35 #define OEPOL (1 << 20) //输出使能极性—设置输出使能信号的极性,高有效. 36 #define END_SEL (0 << 18) //印第安格式选择,小印第安. 37 #define ACD_SEL (0 << 15) //ACD时钟源选择—选择晶向变换计数器的时钟,使用FLM 作为ACD 计数时钟 38 #define ACD (0 << 8 ) //被动模式. 39 #define PCD (10) 40 41 //Macro for HCR regiter setting //水平配置寄存器. 42 #define H_WIDTH ((U32)46 << 26) 43 #define H_WAIT_1 (20 << 8) 44 #define H_WAIT_2 (20) 45 46 //Macro for VCR register setting //垂直配置寄存器. 47 #define V_WIDTH ((U32)10 << 26) 48 #define PASS_FRAME_WAIT (0 <<16) 49 #define V_WAIT_1 (3 << 8) 50 #define V_WAIT_2 (3) 51 52 //Macro for LGPR register setting 53 #define GRAY (4) //灰度等级. 54 55 //Macro for PWMR register setting 56 #define SCR (0 << 9) //时钟源选择.行脉冲. 57 #define CC_EN (0 << 8) //对比度控制使能,关. 58 #define PW (64) //输出脉冲数目, 59 60 //Macro for DMACR register setting 61 #define BL ((U32)1 << 31) //固定长度. 62 #define HM (7 << 16) 63 #define TM (3) 64 65 void lcd_set_pixel(rtgui_color_t *c, int x, int y); 66 void lcd_get_pixel(rtgui_color_t *c, int x, int y); 67 void lcd_draw_hline(rtgui_color_t *c, int x1, int x2, int y) ; 68 void lcd_draw_vline(rtgui_color_t *c, int x, int y1, int y2) ; 69 void lcd_draw_raw_hline(rt_uint8_t *pixels, int x1, int x2, int y) ; 70 void lcd_update(rtgui_rect_t *rect); 71 rt_uint8_t * lcd_get_framebuffer(void); 72 rt_err_t sep4020_lcd_init(void); 73 74 75 #endif 76 77 78