📄 tpg051.c
字号:
#include "ssd192X.h"int LCD_WIDTH=160;int LCD_HEIGHT=240;void lcd_hw_init(void){ int i=0; INT32 lcd_hw_init[][2]= { {REG_PCLK_FREQ_RATIO_0 ,0xff},//0x158 {REG_PCLK_FREQ_RATIO_1 ,0xff},//0x159 {REG_PCLK_FREQ_RATIO_2 ,0x00},//0x15a {REG_PANEL_TYPE ,0x72},//0x10 /*serial tft*/ {REG_MOD_RATE ,0x00},//0x11 {REG_HORIZ_TOTAL_0 ,0x18},//0x12 {REG_HORIZ_TOTAL_1 ,0x07},//0x13 {REG_HDP ,0x15},//0x14 {REG_HDP_START_POS0 ,0x0a},//0x16 {REG_HDP_START_POS1 ,0x00},//0x17 {REG_VERT_TOTAL0 ,0xef},//0x18 {REG_VERT_TOTAL1 ,0x00},//0x19 {REG_VDP0 ,0xdb},//0x1C {REG_VDP1 ,0x00},//0x1D {REG_VDP_START_POS0 ,0x03},//0x1e {REG_VDP_START_POS1 ,0x00},//0x1f {REG_HSYNC_PULSE_WIDTH ,0x81},//0x20 {REG_HSYNC_PULSE_START_POS0 ,0x00},//0x22 {REG_HSYNC_PULSE_START_POS1 ,0x00},//0x23 {REG_VSYNC_PULSE_WIDTH ,0x80},//0x24 {REG_VSYNC_PULSE_START_POS0 ,0x00},//0x26 {REG_VSYNC_PULSE_START_POS1 ,0x00},//0x27 {REG_GPIO_STATUS_CONTROL1 ,0x00},//0xac {REG_HRTFT_SPECIAL_OUTPUT ,0x01},//0x38 {REG_DISPLAY_MODE ,0xC4},//0x70//default off {REG_DV_OFORMAT ,0x00},//0x1a4 {REG_HORIZ_TOTAL_0 ,0x15},//0x12 {REG_HORIZ_TOTAL_1 ,0x07},//0x13 {REG_HDP ,0x13},//0x14 {REG_HDP_START_POS0 ,0x04},//0x16 {REG_VERT_TOTAL0 ,240},//0x18 {REG_VDP0 ,239},//0x1c {REG_VDP_START_POS0 ,0},//0x1e {REG_FPFRAME_START_OFFSET0 ,1},//0x30 {REG_HSYNC_PULSE_START_POS0 ,1},//0x22 {REG_DV_FRAME_SAMPLING, 0x01},//0x161 {REG_LLINE_PULSE_START_SUBPIXEL_POS, 0x03},//0x21=3pixels {REG_LCD_SUBPIXEL_ALIGNMENT, 0x04},//0x42=BRG/RGB {REG_DV_SUBPIXEL_MODE, 0x02}, //0x1a5=enable subpixel accurate horizontal decimation in DV and set "1st row inside,2nd row outside"=0x02 {REG_DEFINE_END ,0x00}//0xFFFF }; debug("Initialize CASIO 2.7\" Panel\n"); while(lcd_hw_init[i][0]!=REG_DEFINE_END) { SSD_REGWB(lcd_hw_init[i][0],lcd_hw_init[i][1]); i++; }/* SSD_IOB(0x70)=0x44; SSD_IOB(0x1a4)=0x00; SSD_IOB(0x12)=0x15; SSD_IOB(0x13)=0x07; SSD_IOB(0x14)=0x13; SSD_IOB(0x16)=0x04; SSD_IOB(0x18)=240; SSD_IOB(0x1c)=239; SSD_IOB(0x1e)=0; SSD_IOB(0x30)=1; SSD_IOB(0x22)=1; SSD_IOB(0x78)=0x50; SSD_IOB(0x74)=0x0; SSD_IOB(0x71)=0x40;*/ debug("send hdips\n"); //hdisp debug("hdisp\n"); SSD_REGWB(0xac,0x7); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x4); SSD_REGWB(0xac,0x6); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x4); SSD_REGWB(0xac,0x6); SSD_REGWB(0xac,0x4); SSD_REGWB(0xac,0x6); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x7);debug("send gpio cmd\n"); //gpio cmd SSD_REGWB(0xac,0x7); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x4); SSD_REGWB(0xac,0x6); SSD_REGWB(0xac,0x4); SSD_REGWB(0xac,0x6); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x4); SSD_REGWB(0xac,0x6); SSD_REGWB(0xac,0x4); SSD_REGWB(0xac,0x6); SSD_REGWB(0xac,0x4); SSD_REGWB(0xac,0x6); SSD_REGWB(0xac,0x4); SSD_REGWB(0xac,0x6); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x0); SSD_REGWB(0xac,0x2); SSD_REGWB(0xac,0x7); //set contrast SSD_REGWB(0xac,0x07);//pull high all //set address SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02);//and pull up SCK when 0 is ready SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); //set value SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); //speical settings SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x07);//pull high all //set brightness SSD_REGWB(0xac,0x07); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x04); SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04); SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04); SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x07);}void setContrast(int value){ int bitNum; printk("setContrast(0x%x) sent:\n",value); //set contrast SSD_REGWB(0xac,0x07);//pull high all //set address SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02);//and pull up SCK when 0 is ready SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); printk("0100"); //set value if(value>0xF) { value=0xF; } if(value<0) { value=0; } for(bitNum=0;bitNum<4;bitNum++) { if(value&(0x1<<bitNum)) { printk("1"); SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); } else { printk("0"); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); } } //speical settings printk("0011\n"); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x07);//pull high all}void setBrightness(int value){ int bitNum; //set brightness SSD_REGWB(0xac,0x07); //set address SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); printk("set Brightness=0x%x\n",value); //don't care SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00); SSD_REGWB(0xac,0x02); printk("0000 00"); //set value if(value>0x3F) { value=0x3F; } if(value<0) { value=0; } for(bitNum=0;bitNum<6;bitNum++) { if(value&(0x1<<bitNum)) { printk("1"); SSD_REGWB(0xac,0x04);//send 1 SSD_REGWB(0xac,0x06); } else { printk("0"); SSD_REGWB(0xac,0x00);//send 0 SSD_REGWB(0xac,0x02); } } SSD_REGWB(0xac,0x07);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -