⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 一个LCD TV的源程序, 用的是realtek的IC
💻 C
字号:
/*********************************************************************

      COPYRIGHT  (C)  Himax Technologies, Inc.

      File name     : ADC.C     

      Description   : Video Decorder AD9883 

      Author        : Nice Chen

      Create date   : 2004/10/11

      Modifications :


*********************************************************************/

#define _ADC_C

/********************** Include Section *****************************/

#include "adc.h"
#include "main.h"

/**************** Function Implement Section ************************/

/* ================================================================
    Name    : Init_Adc_YUV
    Purpose : initial Adc YUV
    Passed  : None               	
    Notes   : None
   ================================================================ */ 

void Init_Adc_YUV(void)
{
    I2CWriteByte(PA8204_ADDR,_ADC_CKCTRL,0x4e);
    I2CWriteByte(PA8204_ADDR,_ADC_RGAIN, 0xC0);
    I2CWriteByte(PA8204_ADDR,_ADC_RGAIN, 0xC0);
    I2CWriteByte(PA8204_ADDR,_ADC_RGAIN, 0xC0);
    I2CWriteByte(PA8204_ADDR,_ADC_ROFF, 0x60);
    I2CWriteByte(PA8204_ADDR,_ADC_GOFF, 0x50);
    I2CWriteByte(PA8204_ADDR,_ADC_BOFF, 0x80);
}

/* ================================================================
    Name    : Set_ADC_YUV
    Purpose : According timing to setup AD9883 PLL
    Passed  : None               	
    Notes   : None
   ================================================================ */ 

void Set_ADC_YUV (Byte byMode)
{
	I2CWrtCNByte(PA8204_ADDR, &ADC_YPbPr_Tbl[byMode][0], _ADC_PLLDCMSB, 6); 
    switch(byMode)
    {
        case _ADC_YUV_480i:
        case _ADC_YUV_480p:
            // Setup AD9883 Output Sync 
            I2CWriteByte(PA8204_ADDR, _ADC_CTRL1, 0x40);
            // Setup AD9883 Coast using external from G3
            I2CWriteByte(PA8204_ADDR, _ADC_CKCTRL, 0x4E);
            // Setup AD9883
            I2CWriteByte(PA8204_ADDR, _ADC_CTRL2, 0xB5);
            I2CWriteByte(PA8204_ADDR, _ADC_CTRL2+1, 0x20);
            break;
    }
}

/* ================================================================
    Name    : Set_ADC_VGA
    Purpose : According timing to setup AD9883 PLL
    Passed  : None               	
    Notes   : None
   ================================================================ */ 

void Set_ADC_VGA (Byte byMode)
{
	I2CWrtCNByte(PA8204_ADDR, &ADC_VGA_Tbl[byMode][0], _ADC_PLLDCMSB, 4);
	I2CWriteByte(PA8204_ADDR, _ADC_CTRL2, 0x00); 
}

/* ================================================================
    Name    : Set_ADC_VGA_GainOff
    Purpose : Setup AD9883 VGA Default Gain/Offset
    Passed  : None               	
    Notes   : None
   ================================================================ */ 

void Set_ADC_VGA_GainOff (Byte *RGBdata)
{
	I2CWriteByte(PA8204_ADDR, _ADC_RGAIN, RGBdata[0]);
	I2CWriteByte(PA8204_ADDR, _ADC_GGAIN, RGBdata[1]);
	I2CWriteByte(PA8204_ADDR, _ADC_BGAIN, RGBdata[2]);
	I2CWriteByte(PA8204_ADDR, _ADC_ROFF, RGBdata[3]);
	I2CWriteByte(PA8204_ADDR, _ADC_GOFF, RGBdata[4]);
	I2CWriteByte(PA8204_ADDR, _ADC_BOFF, RGBdata[5]);
}

/* ================================================================
    Name    : ChgAdcPhase
    Purpose : Setup AD9883 Phase
    Passed  : None               	
    Notes   : None
   ================================================================ */ 

void ChgAdcPhase(void)
{
	Byte byPhase = byCurPhase << 3;
	I2CWriteByte(PA8204_ADDR, _ADC_PHASE, byPhase);
}




⌨️ 快捷键说明

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