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

📄 osd.c

📁 一个用于驱动TFT屏的驱动程序,使用IC:1828,program (无EEPROM 无IR,完整说明)IIC只写一个
💻 C
📖 第 1 页 / 共 2 页
字号:
	temp  = temp | color;    									// set higher 4 bits of color to higher 4 bits of temp8
	write1828(addr,temp);
}

//**********************************
//函数:void osd_ForeColor_N(char block,char color);
//作用:设置OSD正常前景颜色
//参数说明:   block	 => 8 bits , osd块
//            color	 => 8 bits , 低4位是有效
//Function:OSD Displaying Color=(Video Color*OSD_ALPHA+OSD Color*(16-OSD_ALPHA))/16
//**************************************
void osd_ForeColor_N(char block,char color)	
{
	char idata addr;
	char idata temp;
		
	switch(block)
	{
		case title:												// Setup position of Title Block
			addr = osd11;
			break;
		case content:											// Setup position of Content Block
			addr = osd26;
			break;
		case bottom:											// Setup position of Bottom Block
			addr = osd36;
			break;
		default:
			break;
	}

	temp = read1828(addr);										// Read back the register
	temp = temp & 0xf0;		    								// 保留高4位
	color = color & 0x0f;	    								// 低4位是有效
	temp = temp | color;	    								// set lower 4 bits of color to lower 4 bits of temp8
	write1828(addr,temp);
}

//**********************************
//函数:void osd_ForeColor_H(char block,char color);
//作用:设置OSD加亮的前景颜色
//参数说明:   block	 => 8 bits , osd块
//            color	 => 8 bits , 低4位是有效
//Function:	OSD Displaying Color=(Video Color*OSD_ALPHA+OSD Color*(16-OSD_ALPHA))/16
//**************************************
void osd_ForeColor_H(char block,char color)	
{
	char idata addr;
	char idata temp;
		
	switch(block)
	{
		case title:												// Setup position of Title Block
		 	addr = osd12;		
	 		break;
		case content:											// Setup position of Content Block
			addr = osd27;			
			break;
		case bottom:											// Setup position of Bottom Block
			addr = osd37;		
			break;
		default:
			break;
	}

	temp = read1828(addr);										// Read back the register	
	temp = temp & 0xf0;		    								// 保留高4位
	color = color & 0x0f;	   									// 低4位是有效
	temp = temp | color;										// set lower 4 bits of color to lower 4 bits of temp
	write1828(addr,temp);
}

//**********************************
//函数:void osd_Highlight(char block,char xstart,char xend,char ystart,char yend);
//作用:设置Highlight Section的开始位置和结束位置
//参数说明:   block	 => 8 bits , osd块
//   		x       => 低6位是有效
//  	    y       => 低5位是有效
//**************************************
void osd_pos_Highlight(char block,char xstart,char xend,char ystart,char yend)
{
	xstart = xstart & 0x3f;
	xend = xend & 0x3f;
	ystart = ystart & 0x1f;
	yend = yend & 0x1f;

	switch(block)
	{
		case title:												// Setup x size of Title Block
			write1828(osd5,xstart);						// Start
			write1828(osd6,xend);   						// End
			break;

		case content:											// Setup x and y size of Content Block
			write1828(osd20,xstart); 						// xStart
			write1828(osd21,xend);   						// xEnd
			write1828(osd18,ystart);  					// yStart
			write1828(osd19,yend);   						// yEnd
			break;

		case bottom:											// Setup x size of Bottom Block
			write1828(osd32,xstart); 						// Start
			write1828(osd33,xend);   						// End
			break;

		default:
			break;
	}
}


//**********************************
//函数:void osd_Blink(char block,char xstart,char xend,char ystart,char yend);
//作用:设置Blink Section的开始位置和结束位置
//参数说明:  block	 => 8 bits , osd块
//   		  x       => 低6位是有效
//            y       => 低5位是有效
//**************************************
void osd_pos_Blink(char block,char xstart,char xend,char ystart,char yend)
{
	xstart = xstart & 0x3f;
	xend = xend & 0x3f;
	ystart = ystart & 0x1f;
	yend = yend & 0x1f;

	switch(block)
	{
		case title:												// Setup x size of Title Block
			write1828(osd7,xstart);   					// Start
			write1828(osd8,xend);							// End
			break;

		case content:											// Setup x and y size of Content Block
			write1828(osd24,xstart);   					// xStart
			write1828(osd25,xend);						// xEnd
			write1828(osd22,ystart);   					// yStart
			write1828(osd23,yend);						// yEnd
			break;

		case bottom:											// Setup x size of Bottom Block
			write1828(osd34,xstart);   					// Start
			write1828(osd35,xend);						// End
		    break;

		default:
			break;
	}
}

//**************************************
//函数:void osd_blink(char blink);
//作用:设置OSD blinking rate
//*************************************	
void osd_blink(char blink)
{
	blink = blink & 0x3f;										// Remove redundant bits
	write1828(osd3,blink);
}

//*********************************************
//函数:void osd_alpha(char alpha);
//作用:设置 alpha-blending
//参数:	alpha	 => 8 bits , OSD alpha-blending
//			     P.S. Lower 4 bits are available
//*********************************************
void osd_alpha(char alpha)
{
	char temp;

	alpha <<= 4;
	alpha = alpha & 0xf0;										// Remove redundant bits
	temp  = read1828(osd2);
	temp  = temp & 0x0f;
	temp  = temp | alpha;
	write1828(osd2,temp);
}

//**********************************************
//    Adjust Brightness/Contrast/Saturation/Hue/Position (For VX1828)
//函数: void adj_britclr(char kind,char value)
//作用:向相应regsister中填写调整以后和数值
//参数: kind	 => 8 bits , Select Brightness/Contrast/Saturation/Hue be set
//			     Lower 2 bits are available.
//			     0 : Brightness
//			     1 : Contrast
//			     2 : Saturation
//			     3 : Hue
//			     4 : Sharpness
//						---Reserved begin ---
//			     5 : Brightness R		   6 : Brightness G
//			     7 : Brightness B		   8 : Contrast   R
//			     9 : Contrast   G		   10: Contrast   B
//						---Reserved end ---			     	
//			     11: Horizontal Position
//			     12: Vertical Position
//******************************************
void adj_britclr(char kind,char value)
{
	char temp;

	switch(kind)
	{
		case 0:													// Brightness	
			write1828(0x1E,value);	
			break;	
		
    	case 1:													// Contrast
			write1828(0x1F,value);
			break;

		case 2:													// Saturation
			write1828(0x20,value);
			break;

		case 3:													// Hue
			temp = read1828(0x21);
			temp = temp & 0xc0;
			value = value & 0x3f;
			value = value | temp;
			write1828(0x21,value);
			break;
		
		case 4:													// Sharpness
			//   	value = value + 0x80;
			write1828(0x2F,value);
			write1828(0x30,value);
			//write1828(0x31,0x01,&value);
			break;  

		case 5:													// Red Brightness	
			write1828(0x28,value);						// 0x28没有定义(2005.9.29)
			break;

		case 6:													// Green Brightness
			write1828(0x29,value);						// 0x29没有定义(2005.9.29)
			break;
	
		case 7:													// Blue Brightness
			write1828(0x2a,value);
			break;
	
		case 8:													// Red Contrast
			write1828(0x2b,value);
			break;

		case 9:													// Green Contrast
			write1828(0x2c,value);
			break;

		case 10:												// Blue Contrast
			write1828(0x2d,value);
			break;

		case 11:
			write1828(0x3C,value);
			break;

		case 12: 
			write1828(0x3D,value);
			break;
	}		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -