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 + -
显示快捷键?