📄 yuv.c
字号:
#define I2C_REG 0x1600004
#define SYSRREG 0x160000c
#define VPTR 0x1400000
unsigned int * sdram_ptr;
/*******************************************************************************
* Function prototypes
*******************************************************************************/
unsigned int count;
int ms_period = 1;
/*******************************************************************************
* IIC Function prototypes
*******************************************************************************/
void start_i2c(void);
void stop_i2c(void);
void ack_i2c(void);
void write_i2c(unsigned char data);
void Init_7111(void);
void Init_7190(void);
void delay_msec(short msec);
unsigned char val713_1[25] = {
0xf8,0xc0,0x33,0x00,0x00,0xe9,0x0d,
0xb8,0x01,0x80,0x47,0x40,0x00,0x01,0x2a,
0x00,0x0c,0x38,0x00,0x00};
unsigned char val713_2[4] = {
0x00,0x00,0x00,0x00};
unsigned char val713_3[0x21] = {
0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x54,0x07,0x83,0xff,0xff,0x00,0x00};
unsigned char val76[0x36] = {
0x11,0x20,0x62,0x00,0x00,0x00,0x00,0x00,
0x04,0x00,0x08,0x00,0xcb,0x8a,0x09,0x2a,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x44,0x20,0x00,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0x70};
/*******************************************************************************
* FUNCTION : main
*******************************************************************************/
int i,j,ii;
void initDisplay( void )
{
for(i=0;i<0xff;i++)
{
start_i2c();
stop_i2c();
delay_msec(5);
}
Init_7190();
for(j=0;j<0x5;j++)
for(ii=0;ii<0x5;ii++);
Init_7111();
/* while(1){
for(i=0;i<0x7fffff;i++);
*(unsigned volatile int *)SYSRREG = 0x9;
for(i=0;i<0x7fffff;i++);
*(unsigned volatile int *)SYSRREG = 0xa;
for(i=0;i<0x7fffff;i++);
*(unsigned volatile int *)SYSRREG = 0xc;
}*/
}
void delay_msec(short msec)
{
for(i=0;i<0x1000;i++);
}
void start_i2c(void)
{
*(unsigned volatile int *)I2C_REG = 0x025; /* "00100101":sda,scl = '1' */
delay_msec(1);
*(unsigned volatile int *)I2C_REG = 0x024; /* "00100100":sda= '0',scl = '1' */
delay_msec(1);
}
void stop_i2c(void)
{
*(unsigned volatile int *)I2C_REG = 0x024; /* "00100101":sda = '0',scl = '1' */
delay_msec(1);
*(unsigned volatile int *)I2C_REG = 0x025; /* "00100101":sda,scl = '1' */
delay_msec(1);
}
void ack_i2c(void)
{
*(unsigned volatile int *)I2C_REG = 0x020; /* "00100101":sda='z',scl = '0' */
*(unsigned volatile int *)I2C_REG = 0x022; /* "00100101":sda='z',scl = '0' */
delay_msec(1);
*(unsigned volatile int *)I2C_REG = 0x026; /* "00100101":sda='z',scl = '1' */
delay_msec(1);
*(unsigned volatile int *)I2C_REG = 0x022; /* "00100101":sda='z',scl = '0' */
delay_msec(1);
*(unsigned volatile int *)I2C_REG = 0x021; /* "00100101":sda='1',scl = '0' */
delay_msec(1);
}
void write_i2c(unsigned char data)
{
unsigned char BitCounter = 8;
unsigned char temp;
unsigned int reg_val;
reg_val = 0x020;
*(unsigned volatile int *)I2C_REG = 0x20; /*SCL 置低 sda 置低*/
delay_msec(1); /*延时*/
do{
temp = data;
reg_val &= 0x0fffffffb;
*(unsigned volatile int *)I2C_REG = reg_val; /*SCL 置低*/
delay_msec(1); /*延时*/
if((temp&0x80)==0x80)
reg_val |= 0x01; /*如果最高位是1*/
else
reg_val &= 0x0fffffe;
*(unsigned volatile int *)I2C_REG = reg_val; /*设置SDA*/
delay_msec(1); /*延时*/
reg_val |= 0x004;
*(unsigned volatile int *)I2C_REG = reg_val; /*SCL 置高*/
delay_msec(1); /*延时*/
temp = data<<1;
data = temp;
BitCounter --;
}while(BitCounter);
reg_val &= 0x0fffffffb;
*(unsigned volatile int *)I2C_REG = reg_val; /*SCL 置低*/
delay_msec(3); /*延时*/
}
void Init_7111(void)
{
int i;
start_i2c();
write_i2c(0x4a);
ack_i2c();
write_i2c(0x01);
ack_i2c();
for(i=0;i<0x14;i++){
write_i2c(val713_1[i]);
ack_i2c();
}
stop_i2c();
delay_msec(1);
start_i2c();
write_i2c(0x4a);
ack_i2c();
write_i2c(0x15);
ack_i2c();
for(i=0;i<4;i++){
write_i2c(val713_2[i]);
ack_i2c();
}
stop_i2c();
delay_msec(1);
start_i2c();
write_i2c(0x4a);
ack_i2c();
write_i2c(0x40);
ack_i2c();
for(i=0;i<0x20;i++){
write_i2c(val713_3[i]);
ack_i2c();
}
stop_i2c();
delay_msec(1);
}
void Init_7190(void)
{
int i;
start_i2c();
write_i2c(0xd6);
ack_i2c();
write_i2c(0x00);
ack_i2c();
for(i=0x0;i<0x36;i++){
write_i2c(val76[i]);
ack_i2c();
}
stop_i2c();
delay_msec(5);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -