📄 adjust.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 + -