inxv1818.c

来自「VX1818驱动AU 7"屏的源程序」· C语言 代码 · 共 240 行

C
240
字号

#define VX1818	 0xD8


#define peak_clip_min	0x96
#define peak_clip_max	0xFF
#define RESET		0x5A
#define CLEAN		0xA5
#define AFE_OFFSET	0x75

extern void shi_sub_read (char,char,char,char*);
extern void shi_sub_write (char,char,char,char*);
extern void DelayXms(char);
extern void aisel_func(char);

void Init_VX1818()
{
  char tmp;

  tmp = RESET;
  shi_sub_write(VX1818,0x01,0x00,&tmp);		

  tmp = 0xFB;
  shi_sub_write(VX1818,0x3B,0x00,&tmp);  

  tmp = 0x08;   
  shi_sub_write(VX1818,0x3A,0x00,&tmp);

  tmp = 0x7F;   
  shi_sub_write(VX1818,0xC0,0x00,&tmp);

  tmp = 0x38;   
  shi_sub_write(VX1818,0xC1,0x00,&tmp);

  tmp = 0x0F;   
  shi_sub_write(VX1818,0xC2,0x00,&tmp);

  tmp = 0X73;
  shi_sub_write(VX1818,0x0A,0x00,&tmp);

  tmp = 0X6B;
  shi_sub_write(VX1818,0x06,0x00,&tmp);

 tmp = 0x0;   
  shi_sub_write(VX1818,0xB1,0x00,&tmp);

  tmp = 0x0;
  shi_sub_write(VX1818,0xB2,0x00,&tmp);

  tmp = 0x0;
  shi_sub_write(VX1818,0xB3,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0xB4,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0xB5,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0xB6,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0xB7,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0xB8,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0xB9,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0xBA,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0xBB,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0xBC,0x00,&tmp);

  tmp = 0XD9;
  shi_sub_write(VX1818,0x05,0x00,&tmp);

  tmp = 0x28;
  shi_sub_write(VX1818,0x06,0x00,&tmp);		// Top threshold selector of analog sync. detector
							// and Disable the analog SYNC reference signal
  aisel_func(0x07);						// Select AIY<2>
  DelayXms(0xC8);

  tmp = 0x68;						// Enable the analog SYNC reference signal
  shi_sub_write(VX1818,0x06,0x00,&tmp);

  tmp = 0x08;   
  shi_sub_write(VX1818,0x09,0x00,&tmp);

  tmp = 0x88;   
  shi_sub_write(VX1818,0x09,0x00,&tmp);

  tmp = 0x60;   
  shi_sub_write(VX1818,0x10,0x00,&tmp);

  tmp = 0x20;   
  shi_sub_write(VX1818,0x10,0x00,&tmp);
  
  tmp = 0x93;   
  shi_sub_write(VX1818,0x3C,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0x40,0x00,&tmp);

  tmp = 0x0;   
  shi_sub_write(VX1818,0x41,0x00,&tmp);

  tmp = 0x50;
  shi_sub_write(VX1818,0x22,0x00,&tmp);

  tmp = 0xF0;
  shi_sub_write(VX1818,0x2E,0x00,&tmp);

  tmp = 0x20;
  shi_sub_write(VX1818,0x2F,0x00,&tmp);

  tmp = 0x20;
  shi_sub_write(VX1818,0x30,0x00,&tmp);

  tmp = 0x05;
  shi_sub_write(VX1818,0x31,0x00,&tmp);

 tmp = 0xFF;
  shi_sub_write(VX1818,0x32,0x00,&tmp);

  tmp = 0x9C;   
  shi_sub_write(VX1818,0x7A,0x00,&tmp);
 
}
/**********************************************************************
    Select analog video input.(For VX1818)
Input:
	aisel    => 8 bits , Analog video input selection (Lower 4 bits are available)
			     0:Composite input AIY<0>
			     1:Composite input AIY<1>
			     2:Composite input AIY<2>
			     3:Composite input AIC<0>
			     4:Composite input AIC<1>
			     5:Composite input AIC<2>	Reserved
			     6:S-video(AIY<0> is luminance input,AIC<0> is chrominance input)
			     7:S-video(AIY<1> is luminance input,AIC<1> is chrominance input)
			     8:S-video(AIY<2> is luminance input,AIC<2> is chrominance input)			Reserved
			     9:3-wire Y/Pb/Pr(AIY<0> is luminance input,AIC<0> is Pb input,AIC<1>
			       is Pr input) 	Reserved
			   10:Composite input AIY<3>
			   11:Composite input AIY<4>	Reserved
			   Others: Reserved
Output:  None
**********************************************************************/
void aisel_func(char aisel)
{
  aisel = aisel & 0x0f;
  shi_sub_write(VX1818,0x02,0x00,&aisel);			// AISEL
  DelayXms(0xc8);
}

/**********************************************************************
    Adjust Brightness/Contrast/Saturation/Hue/Position (For VX1818)
Input:
	kind1	 => 8 bits , Select Brightness/Contrast/Saturation/Hue be set
			     Lower 2 bits are available.
			     0:Brightness
			     1:Contrast
			     2:Saturation
			     3:Hue
			     4:Sharpness
			     5:Brightness R		Reserved
			     6:Brightness G		Reserved
			     7:Brightness B		Reserved
			     8:Contrast R		Reserved
			     9:Contrast G		Reserved
			     10:Contrast B		Reserved
			     11:Horizontal Position
			     12:Vertical Position

	value    => 8 bits , The value be set.
		             For Hue,the higher 2 bits are not available.
Output:  None
**********************************************************************/
void adj_britclr(char kind,char value)
{
  char temp;
  switch(kind)
  {
   case 0:	// Brightness
	shi_sub_write(VX1818,0x1E,0x00,&value);
     	break;
   case 1:	// Contrast
	shi_sub_write(VX1818,0x1F,0x00,&value);
     	break;
   case 2:	// Saturation
	shi_sub_write(VX1818,0x20,0x00,&value);
     	break;
   case 3:	// Hue
   	shi_sub_read(VX1818,0x21,0x00,&temp);
   	temp = temp & 0xc0;
   	value = value & 0x3f;
   	value = value | temp;
	shi_sub_write(VX1818,0x21,0x00,&value);
     	break;
   case 4:	// Sharpness
//   	value = value + 0x80;
	shi_sub_write(VX1818,0x2F,0x00,&value);
	shi_sub_write(VX1818,0x30,0x00,&value);
    /*	shi_sub_write(VX1818,0x31,0x00,&value);  */
     	break;
    /*case 5:	// Red Brightness
	shi_sub_write(VX1818,0x28,0x00,&value);
     	break;
   case 6:	// Green Brightness
	shi_sub_write(VX1818,0x29,0x00,&value);
     	break;
   case 7:	// Blue Brightness
	shi_sub_write(VX1818,0x2a,0x00,&value);
     	break;
   case 8:	// Red Contrast
	shi_sub_write(VX1818,0x2b,0x00,&value);
     	break;
   case 9:	// Green Contrast
	shi_sub_write(VX1818,0x2c,0x00,&value);
     	break;
   case 10:	// Blue Contrast
	shi_sub_write(VX1818,0x2d,0x00,&value);
     	break;*/
   case 11:
	shi_sub_write(VX1818,0x3C,0x00,&value);
	break;
   case 12:
	shi_sub_write(VX1818,0x3D,0x00,&value);
	break;
   default:
   	break;
  }
}

⌨️ 快捷键说明

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