adv7180.c
来自「ADI blackfin DSP的基于device friver的jpeg压缩算」· C语言 代码 · 共 89 行
C
89 行
#include "adv7180.h"
#include "I2C.h"
//asm(".Section sdram_code_coreA;");
void init_adv7180(void)
{
long delay_time;
u8 temp;
int i = 0;
// configure RESET flag as output
//*pFIO0_DIR |= (1 << ADV7180_SCL) | (1 << ADV7180_SDATA);
//ssync();
//*********************************************************************//
bool ret = true;
// Init I2C for ADV7181 Indent addr.
if (I2C_Init(ADV7180_IDENT))
ret = EJ_ERR_UNKNOWN;
temp = 0x80;
I2C_Write(&temp, 0x0F,1);//RESET,第9个脉冲不会有ack
for (delay_time = 0; delay_time < (ADV7180_Reset_Delay); delay_time++)
asm("nop;");//复位需要延时2ms
/* temp = 0x24;
if (I2C_Write(&temp, 0x0F,1))//RESET置0
ret = EJ_ERR_UNKNOWN;
*/
temp = 0x00;
if (I2C_Write(&temp, 0x1D,1))
ret = EJ_ERR_UNKNOWN;
temp = 0x01;
if (I2C_Write(&temp, 0x00,1))//设置输入为AIN1信号为cvbs,此为默认状态,可不写
ret = EJ_ERR_UNKNOWN;
temp = 0x57;
if (I2C_Write(&temp, 0x04,1))//enable SFL
ret = EJ_ERR_UNKNOWN;
temp = 0x41;
if (I2C_Write(&temp, 0x17,1))//select SH1
ret = EJ_ERR_UNKNOWN;
temp = 0x02;
if (I2C_Write(&temp, 0x31,1))//clear NEWAV_MODE,SAV/EAV to suit ADV video encodes
ret = EJ_ERR_UNKNOWN;
temp = 0xA2;
if (I2C_Write(&temp, 0x3D,1))//MWE enable manual windows,color kill threshold to 2
ret = EJ_ERR_UNKNOWN;
temp = 0x6A;
if (I2C_Write(&temp, 0x3E,1))//BLM optimization
ret = EJ_ERR_UNKNOWN;
temp = 0xA0;
if (I2C_Write(&temp, 0x3F,1))//BGB optimization
ret = EJ_ERR_UNKNOWN;
temp = 0x80;
if (I2C_Write(&temp, 0x0E,1))//Hidden space
ret = EJ_ERR_UNKNOWN;
temp = 0x81;
if (I2C_Write(&temp, 0x55,1))//ADC configuration
ret = EJ_ERR_UNKNOWN;
temp = 0x00;
if (I2C_Write(&temp, 0x0E,1))//user space
ret = EJ_ERR_UNKNOWN;
/* temp = 0x04;
if (I2C_Write(&temp, 0x0F,0x00))//RESET
ret = EJ_ERR_UNKNOWN;
*/
// If Error.
/*if (ret == EJ_ERR_UNKNOWN)
{
while(1)
{
idle();
}
}
*/
//延时,以便在打开PPI之前锁住信号
for (i = 0; i < (ADV7180_Lock*5); i++)
{
asm volatile("nop; nop; nop;");
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?