Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
176
sdk/lib/bus/spi/lcd/st7796.c
Normal file
176
sdk/lib/bus/spi/lcd/st7796.c
Normal file
@@ -0,0 +1,176 @@
|
||||
#include "lib/lcd/lcd.h"
|
||||
|
||||
|
||||
#if LCD_ST7796_EN
|
||||
#define CMD(x) {LCD_CMD,x}
|
||||
#define DAT(x) {LCD_DAT,x}
|
||||
#define DLY(x) {DELAY_MS,x}
|
||||
#define END {LCD_TAB_END,LCD_TAB_END}
|
||||
|
||||
uint8_t st7796_register_init_tab[][2] = {
|
||||
|
||||
//ST7796
|
||||
|
||||
CMD(0x11),
|
||||
DLY(120),
|
||||
CMD(0xf0),
|
||||
DAT(0xc3),
|
||||
|
||||
CMD(0xf0),
|
||||
DAT(0x96),
|
||||
|
||||
CMD(0x21),
|
||||
|
||||
CMD(0x36),
|
||||
DAT(0x48),
|
||||
|
||||
CMD(0x3A),
|
||||
DAT(0x66),
|
||||
//DAT(0x55),
|
||||
|
||||
CMD(0xB0),
|
||||
DAT(0x02),
|
||||
|
||||
CMD(0xB4),
|
||||
DAT(0x01),
|
||||
|
||||
CMD(0xB5),
|
||||
DAT(0x02), //vfp[7:0]
|
||||
DAT(0x02), //vbp[7:0]
|
||||
DAT(0x00),
|
||||
DAT(0x04), //hbp[7:0]
|
||||
|
||||
CMD(0xB6),
|
||||
DAT(0x80), //MCU:80, RGB:20/A0
|
||||
DAT(0x02),
|
||||
DAT(0x3B),
|
||||
|
||||
CMD(0xB7),
|
||||
DAT(0xC6),
|
||||
|
||||
CMD(0xe8),
|
||||
DAT(0x40),
|
||||
DAT(0x8a),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x29),
|
||||
DAT(0x19),
|
||||
DAT(0xa5),
|
||||
DAT(0x33),
|
||||
|
||||
CMD(0xc2),
|
||||
DAT(0xa7),
|
||||
|
||||
CMD(0xc5),
|
||||
DAT(0x19),
|
||||
|
||||
CMD(0xe0), //Positive Voltage Gamma Control
|
||||
DAT(0xf0),
|
||||
DAT(0x00),
|
||||
DAT(0x08),
|
||||
DAT(0x0e),
|
||||
DAT(0x0d),
|
||||
DAT(0x1a),
|
||||
DAT(0x37),
|
||||
DAT(0x54),
|
||||
DAT(0x47),
|
||||
DAT(0x2b),
|
||||
DAT(0x16),
|
||||
DAT(0x15),
|
||||
DAT(0x1a),
|
||||
DAT(0x1d),
|
||||
|
||||
CMD(0xe1), //Negative Voltage Gamma Control
|
||||
DAT(0xf0),
|
||||
DAT(0x02),
|
||||
DAT(0x06),
|
||||
DAT(0x0c),
|
||||
DAT(0x0e),
|
||||
DAT(0x29),
|
||||
DAT(0x34),
|
||||
DAT(0x44),
|
||||
DAT(0x47),
|
||||
DAT(0x2b),
|
||||
DAT(0x17),
|
||||
DAT(0x16),
|
||||
DAT(0x19),
|
||||
DAT(0x1d),
|
||||
CMD(0xf0),
|
||||
DAT(0x3c),
|
||||
CMD(0xf0),
|
||||
DAT(0x69),
|
||||
|
||||
DLY(120),
|
||||
CMD(0x29),
|
||||
DLY(100),
|
||||
CMD(0x2C),
|
||||
|
||||
END
|
||||
};
|
||||
|
||||
lcddev_t lcdstruct = {
|
||||
.name = "st7796",
|
||||
.lcd_bus_type = LCD_BUS_I80,
|
||||
.bus_width = LCD_BUS_WIDTH_6,
|
||||
.color_mode = LCD_MODE_666,
|
||||
//.red_width = LCD_BUS_WIDTH_6,
|
||||
//.green_width = LCD_BUS_WIDTH_6,
|
||||
//.blue_width = LCD_BUS_WIDTH_6,
|
||||
.scan_mode = LCD_ROTATE_90,//rotate 90
|
||||
.te_mode = 0xff,//te mode, 0xff:disable
|
||||
.colrarray = 0,//0:_RGB_ 1:_RBG_,2:_GBR_,3:_GRB_,4:_BRG_,5:_BGR_
|
||||
//f(wr) = source_clk/div/2
|
||||
//f(wr) >= screen_w * screen_h * clk_per_pixel * 60
|
||||
.pclk = 10000000,
|
||||
.even_order = 0,
|
||||
.odd_order = 0,
|
||||
.lcd_data_mode = (0<<31)|//data inversion mode
|
||||
(2<<24)|//data compress mode
|
||||
(1<<20)|//fifo mode
|
||||
(0<<17)|//output cycle 2 shift direction
|
||||
(0<<12)|//output cycle 2 shift bit
|
||||
(0<<11)|//output cycle 1 shift direction
|
||||
(0<<6)| //output cycle 1 shift bit
|
||||
(0<<5)| //output cycle 0 shift direction
|
||||
(8<<0), //output cycle 0 shift bit
|
||||
.screen_w = 320,
|
||||
.screen_h = 480,
|
||||
.video_x = 0,
|
||||
.video_y = 0,
|
||||
.video_w = 320,
|
||||
.video_h = 480,
|
||||
.osd_x = 0,
|
||||
.osd_y = 0,
|
||||
.osd_w = 0, // 0 : value will set to video_w , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
|
||||
.osd_h = 0, // 0 : value will set to video_h , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
|
||||
.init_table = st7796_register_init_tab,
|
||||
.frame_table = NULL,
|
||||
.clk_per_pixel = 2,
|
||||
|
||||
.pclk_inv = 1,
|
||||
|
||||
.vlw = 0,// 0,
|
||||
.vbp = 0,// 12,
|
||||
.vfp = 0,// 12,
|
||||
.hlw = 0,// 1,
|
||||
.hbp = 0,//14,
|
||||
.hfp = 0,//13,
|
||||
|
||||
.de_en = 1,
|
||||
.vs_en = 0,
|
||||
.hs_en = 0,
|
||||
.de_inv = 1,
|
||||
.hs_inv = 0,
|
||||
.vs_inv = 0,
|
||||
|
||||
.brightness = 1,
|
||||
.saturation = 7,
|
||||
.contrast = 7,
|
||||
.contra_index = 8,
|
||||
|
||||
.gamma_red = 3,
|
||||
.gamma_green=3,
|
||||
.gamma_blue=3,
|
||||
|
||||
};
|
||||
#endif
|
||||
Reference in New Issue
Block a user