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

📄 adjust.c

📁 主要用于液晶电视解码,内置51单片机,全部代码用C编写,编译环境为KEILC
💻 C
字号:
#define _ADJUST_C_

#include <math.h>
#include "types.h"
#include "board.h"
#include "global.h"
#include "ms_reg.h"
#include "ms_rwreg.h"
#include "DEBUG.h"
#include "msosd.h"
#include "adjust.h"
#if VGA_ENABLE
void msAdjustHPosition(WORD position)
{
    msWriteWord(BK0_08_SPRHST_H, position);
}
void msAdjustVPosition(WORD position)
{
    msWriteWord(BK0_06_SPRVST_H, position);
}

//=======================================================
////////////////////////////////////////////////////////////////////////
// ADC offset control.
//
// Arguments: ucColor - color selection
//            (ADC_OFFSET_RED/ADC_OFFSET_GREEN/ADC_OFFSET_BLUE)
//            ucValue - input value
////////////////////////////////////////////////////////////////////////
void msSetAdcOffset(BYTE ucColor, BYTE ucValue)
{
    msWriteByte(ucColor, ~ucValue);
}

void msAdjustAdcGain(BYTE ucRedValue, BYTE ucGreenValue, BYTE ucBlueValue)
{
    BYTE ucBank;
    ucBank = msReadByte( BK0_00_REGBK);
    msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // select register bank ADC/DVI
    msSetAdcOffset(BK1_04_RGAIN_ADC, ucRedValue); // red gain
    msSetAdcOffset(BK1_05_GGAIN_ADC, ucGreenValue); // green gain
    msSetAdcOffset(BK1_06_BGAIN_ADC, ucBlueValue); //  blue gain
    msWriteByte(BK0_00_REGBK, ucBank); // select register bank scaler
}
//////////////////////////////////////////////////////////////////////////////
// <Name>: msAdjustAdcOffset
//
// <Description>: Adjust ADC offser.(Switch bank)
//
// <Parameter>:  -  <Flow>  -  <Description>
// ---------------------------------------------------------------------------
//  ucRedValue   -   In    -    Set red value.
//  ucGreenValue -   In    -    Set green value.
//  ucBlueValue  -   In    -    Set blue value.
//////////////////////////////////////////////////////////////////////////////
void msAdjustAdcOffset(BYTE ucRedValue, BYTE ucGreenValue, BYTE ucBlueValue)
{
    BYTE ucBank;
    ucBank = msReadByte( BK0_00_REGBK);

    msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // select register bank ADC/DVI
    msSetAdcOffset(BK1_07_ROFFS_ADC, ucRedValue); // red offset
    msSetAdcOffset(BK1_08_GOFFS_ADC, ucGreenValue); // green offset
    msSetAdcOffset(BK1_09_BOFFS_ADC, ucBlueValue); //  blue offset

    msWriteByte(BK0_00_REGBK, ucBank); // select register bank scaler
}
//////////////////////////////////////////////////////////////////////////////
// <Name>: msAdjustAdcClock
//
// <Description>: Adjust ADC clock.(Switch bank)
//
// <Parameter>:  -  <Flow>  -  <Description>
// ---------------------------------------------------------------------------
//   wValue      -    In  -    Set value.
//////////////////////////////////////////////////////////////////////////////
void msAdjustAdcClock(WORD wValue)
{
    BYTE ucBank; // bank buffer
    ucBank = msReadByte(BK0_00_REGBK); // store bank

    msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // select register bank ADC/DVI
    wValue -= 3; // actual - 3
    // PLL divider
    msWriteByte(BK1_02_PLLDIVM, wValue >> 4); // b11-4
    msWriteByte(BK1_03_PLLDIVL, (BYTE)wValue << 4); // b3-0

    msWriteByte(BK0_00_REGBK, ucBank); // recovery bank
}
//////////////////////////////////////////////////////////////////////////////
// <Name>: msAdjustAdcPhase
//
// <Description>: Adjust ADC phase.(Switch bank)
//
// <Parameter>:  -  <Flow>  -  <Description>
// ---------------------------------------------------------------------------
//   ucValue      -      In  -    Set value.
//////////////////////////////////////////////////////////////////////////////
void msAdjustAdcPhase(BYTE ucValue)
{
    BYTE ucBank; // bank buffer
    ucBank = msReadByte(BK0_00_REGBK); // store bank

    msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // select register bank ADC/DVI
    msWriteByte(BK1_10_CLKCTRL1, (ucValue+8)%0x40); // b5-0: clock phase adjust(PHASECC + 8)
    msWriteByte(BK1_11_CLKCTRL2, ucValue); // b5-0: PHASECC(clock phase adjust)

    msWriteByte(BK0_00_REGBK, ucBank); // recovery bank
}
#endif

⌨️ 快捷键说明

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