📄 ad9883.c
字号:
/*********************************************************************
COPYRIGHT (C) Himax Technologies, Inc.
File name : AD9883.C
Description : Video Decorder AD9883
Author : Nice Chen
Create date : 2004/10/11
Modifications :
*********************************************************************/
#define _AD9883_C
/********************** Include Section *****************************/
#include "adc.h"
#include "main.h"
/**************** Function Implement Section ************************/
/* ================================================================
Name : Init_Ad9883_YUV
Purpose : initial Ad9883 YUV
Passed : None
Notes : None
================================================================ */
void Init_Ad9883_YUV(void)
{
I2CWriteByte(AD9883_ADR_YUV,0x0f,0x4e);
I2CWriteByte(AD9883_ADR_YUV,_AD9883_RGAIN, 0xC0);
I2CWriteByte(AD9883_ADR_YUV,_AD9883_RGAIN, 0xC0);
I2CWriteByte(AD9883_ADR_YUV,_AD9883_RGAIN, 0xC0);
I2CWriteByte(AD9883_ADR_YUV,_AD9883_ROFF, 0x60);
I2CWriteByte(AD9883_ADR_YUV,_AD9883_GOFF, 0x50);
I2CWriteByte(AD9883_ADR_YUV,_AD9883_BOFF, 0x80);
}
/* ================================================================
Name : Set_AD9883_YUV
Purpose : According timing to setup AD9883 PLL
Passed : None
Notes : None
================================================================ */
void Set_AD9883_YUV (Byte byMode)
{
I2CWrtCNByte(AD9883_ADR_YUV, &ADC_YPbPr_Tbl[byMode][0], _AD9883_PLLDCMSB, 6);
switch(byMode)
{
case _AD9883_YUV_480i:
case _AD9883_YUV_480p:
// Setup AD9883 Output Sync
I2CWriteByte(AD9883_ADR_YUV, _AD9883_CTRL1, 0x40);
// Setup AD9883 Coast using external from G3
I2CWriteByte(AD9883_ADR_YUV, _AD9883_CKCTRL, 0x4E);
// Setup AD9883
I2CWriteByte(AD9883_ADR_YUV, _AD9883_CTRL2, 0xB5);
I2CWriteByte(AD9883_ADR_YUV, _AD9883_CTRL2+1, 0x20);
break;
}
}
/* ================================================================
Name : Set_AD9883_VGA
Purpose : According timing to setup AD9883 PLL
Passed : None
Notes : None
================================================================ */
void Set_AD9883_VGA (Byte byMode)
{
I2CWrtCNByte(AD9883_ADR_VGA, &ADC_VGA_Tbl[byMode][0], _AD9883_PLLDCMSB, 4);
I2CWriteByte(AD9883_ADR_VGA, _AD9883_CTRL2, 0x00);
}
/* ================================================================
Name : Set_AD9883_VGA_GainOff
Purpose : Setup AD9883 VGA Default Gain/Offset
Passed : None
Notes : None
================================================================ */
void Set_AD9883_VGA_GainOff (Byte *RGBdata)
{
I2CWriteByte(AD9883_ADR_VGA, _AD9883_RGAIN, RGBdata[0]);
I2CWriteByte(AD9883_ADR_VGA, _AD9883_GGAIN, RGBdata[1]);
I2CWriteByte(AD9883_ADR_VGA, _AD9883_BGAIN, RGBdata[2]);
I2CWriteByte(AD9883_ADR_VGA, _AD9883_ROFF, RGBdata[3]);
I2CWriteByte(AD9883_ADR_VGA, _AD9883_GOFF, RGBdata[4]);
I2CWriteByte(AD9883_ADR_VGA, _AD9883_BOFF, RGBdata[5]);
}
/* ================================================================
Name : ChgAdcPhase
Purpose : Setup AD9883 Phase
Passed : None
Notes : None
================================================================ */
void ChgAdcPhase(void)
{
Byte byPhase = byCurPhase << 3;
I2CWriteByte(AD9883_ADR_VGA, _AD9883_PHASE, byPhase);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -