⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 casio27.c

📁 ssd192X_LPC2210_V2.0 LPC2210的16位数据口控制SSD1926
💻 C
字号:
#include "ssd192X.h"

int LCD_WIDTH=160;
int LCD_HEIGHT=240;

int WIDE_TFT=0;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);
#if 0//flip SSD_REGWB(0xac,0x07); SSD_REGWB(0xac,0x00);//0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x04);//1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04);//1 SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x00);//0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//0//D4 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x04);//1//D5 up down reverse SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04);//1//D5 right left reverse SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04);//1//on backlight SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x04);//1//Normal SSD_REGWB(0xac,0x06); SSD_REGWB(0xac,0x00);//0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x00);//0 SSD_REGWB(0xac,0x02); SSD_REGWB(0xac,0x07);         SSD_REGWB(REG_DV_SUBPIXEL_MODE, 0x1d);// even:BGR 101+odd RBG: 001#endif}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 + -