📄 useradj.c
字号:
#include "F63REG.H"
#include "UserAdj.H"
#include "RAM.H"
#include "IIC.H"
#include "MyDef.H"
#include "stdio.h"
#include "Scaler.H"
#include "IIC.H"
#include "Rom_map.H"
#include "OSD.H"
#include "MCU.H"
#include "OSD_TAB.H"
#include "sRGB.H"
#include "SAA7114.H"
code unsigned char ColorTab[]={
0,1,2,3 //USER,6500k,7500k,9300K
};
void InverterUp(void)
{
if(++Inverter > 100)
Inverter = 100;
else{
SetInverter();
ShowInverter();
}
}
void InverterDown(void)
{
if(--Inverter == 0xff)
Inverter = 0x00;
else{
SetInverter();
ShowInverter();
}
}
void BrightnessUp(void)
{
if(++Brightness > 100)
Brightness = 100;
else{
if(PowerStatus == 0x80)
SetBrightness();
else
SetVideoBrightness();
ShowBrightness();
}
}
void BrightnessDown(void)
{
if(--Brightness == 0xff)
Brightness = 0x00;
else{
if(PowerStatus == 0x80)
SetBrightness();
else
SetVideoBrightness();
ShowBrightness();
}
}
void ContrastUp(void)
{
if(++Contrast > 100)
Contrast = 100;
else{
if(PowerStatus == 0x80)
sRGB();
else
SetVideoContrast();
ShowContrast();
}
}
void ContrastDown(void)
{
if(--Contrast == 0xff)
Contrast = 0x00;
else{
if(PowerStatus == 0x80)
sRGB();
else
SetVideoContrast();
ShowContrast();
}
}
void ClockUp(void)
{
if(++HTotal > Clk_Max)
HTotal = Clk_Max;
else{
SetADC_PLL();
ShowClock();
}
}
void ClockDown(void)
{
if(--HTotal < Clk_Min)
HTotal = Clk_Min;
else{
SetADC_PLL();
ShowClock();
}
}
void PhaseUp(void)
{
if(++ADC_Phase > 0x3f)
ADC_Phase = 0x3f;
else{
SetADC_Phase();
ShowPhase();
}
}
void PhaseDown(void)
{
if(--ADC_Phase == 0xff)
ADC_Phase = 0x00;
else{
SetADC_Phase();
ShowPhase();
}
}
void HP_Up(void)
{
if(++HP_Start > HP_Max)
HP_Start = HP_Max;
else{
SetHP();
ShowHP();
}
}
void HP_Down(void)
{
if(--HP_Start < HP_Min)
HP_Start = HP_Min;
else{
SetHP();
ShowHP();
}
}
void VP_Up(void)
{
if(++VP_Start > VP_Max)
VP_Start = VP_Max;
else{
SetVP();
ShowVP();
}
}
void VP_Down(void)
{
if(--VP_Start == 0xffff)
VP_Start = 0x00;
else{
SetVP();
ShowVP();
}
}
void Recall(void)
{
unsigned short addr;
unsigned char i;
if((flag3 & BIT_0) == 0){
if(PowerStatus == 0x80){
// mode recall : Brightness/Contrast/Sharpness/Clock/HP/VP/Phase/User Color = Standard Color
if(ModePoint < UserModeSt){
addr = 0x100 + (ModePoint * 8);
for(i=0; i<6; i++){
Write24C16(addr,MCU_DataMap[addr]);
addr++;
}
addr++;
Write24C16(addr,MCU_DataMap[addr]);
}
Write24C16(0xdd,MCU_DataMap[0xdd]); //osd position x
Write24C16(0xde,MCU_DataMap[0xde]); //osd position y
Write24C16(0xcf,MCU_DataMap[0xcf]); //osd time
Write24C16(0xd0,MCU_DataMap[0xd0]); //Brightness
Write24C16(0xd1,MCU_DataMap[0xd1]); //Contrast
Write24C16(0xd4,MCU_DataMap[0xd4]); //Volume
Write24C16(0xc8,MCU_DataMap[0xc8]); //sRGB saturation
Write24C16(0xc9,MCU_DataMap[0xc9]); //sRGB Tint
Write24C16(0xee,Read24C16(0xf1)); //R Gain
Write24C16(0xef,Read24C16(0xf2)); //G Gain
Write24C16(0xf0,Read24C16(0xf3)); //B Gain
LoadModeIndependentSettings();
LoadModeDependentSettings();
SetADC_PLL();
SetADC_Phase();
SetScaler();
SetSharpness();
SetBrightness();
sRGB();
SetVolume();
}
else if((PowerStatus == 0x81)||(PowerStatus == 0x82)){
Brightness = MCU_DataMap[0xd6]; //0xd6 = brightness
Contrast = MCU_DataMap[0xd7]; //0xd7 = contrast
Saturation = MCU_DataMap[0xd8]; //0xd8 = video saturation
Tint = MCU_DataMap[0xd9]; //0xd6 = video hue
Sharpness = MCU_DataMap[0xda]; //0xda = Sharpness(video)
Write24C16(0xd6,Brightness); //0xd6 = brightness
Write24C16(0xd7,Contrast); //0xd7 = contrast
Write24C16(0xd8,Saturation); //0xd8 = video saturation
Write24C16(0xd9,Tint); //0xd6 = video hue
Write24C16(0xda,Sharpness); //0xda = Sharpness(video)
SetVideoBrightness();
SetVideoContrast();
SetVideoSaturation();
SetVideoTint();
SetVideoSharpness();
}
}
else{
ResetEEPROM();
}
}
void ResetEEPROM(void)
{
unsigned short addr;
for(addr=0; addr<0xe0; addr=addr+16)
WritePage24C16(addr,addr,MCU_DataMap);
for(addr=0x100; addr<0x280; addr=addr+16)
WritePage24C16(addr,addr,MCU_DataMap);
for(addr=0; addr<50; addr++){
Write24C16(0x290+addr*2,MCU_DataMap[0x104+addr*8]);
Write24C16(0x291+addr*2,MCU_DataMap[0x105+addr*8]);
}
Write24C16(0xe0,MCU_DataMap[0xe0]); //language
Write24C16(0xe1,MCU_DataMap[0xe1]); //color temperature select
flag1 |= BIT_7;
Write24C16(0xea,Version);
Write24C16(0xeb,Reversion);
}
void OSD_X_Up(void)
{
if(++OSD_X > 100)
OSD_X = 100;
else{
SetPosition();
ShowOSD_X();
}
}
void OSD_X_Down(void)
{
if(--OSD_X == 0xff)
OSD_X = 0;
else{
SetPosition();
ShowOSD_X();
}
}
void OSD_Y_Up(void)
{
if(++OSD_Y > 100)
OSD_Y = 100;
else{
SetPosition();
ShowOSD_Y();
}
}
void OSD_Y_Down(void)
{
if(--OSD_Y == 0xff)
OSD_Y = 0;
else{
SetPosition();
ShowOSD_Y();
}
}
void OSD_TimerUp(void)
{
if(++OSD_Timer > 100)
OSD_Timer = 100;
else{
ShowOSD_Timer();
}
}
void OSD_TimerDown(void)
{
if(--OSD_Timer < 5)
OSD_Timer = 5;
else{
ShowOSD_Timer();
}
}
void LoadModeIndependentSettings(void)
{
unsigned char k;
Sharpness = Read24C16(0xca); //0xca = Sharpness
Inverter = Read24C16(0xd5); //0xd5 = inverter
Brightness = Read24C16(0xd0); //0xd0 = brightness
Contrast = Read24C16(0xd1); //0xd1 = contrast
Saturation = Read24C16(0xc8); //0xc8 = Saturation
Tint = Read24C16(0xc9); //0xc9 = Tint
Volume = Read24C16(0xd4); //0xd1 = volume
OSD_X = Read24C16(0xdd); //0xdd = osd position x
OSD_Y = Read24C16(0xde); //0xdd = osd position y
OSD_Timer = Read24C16(0xcf); //0xcf = osd timer
Language = Read24C16(0xe0); //0xe0 = Language
k = Read24C16(0xe1);
k = ColorTab[k];
if((k == 0)||((flag3 & BIT_0) != 0))
flag2 &= ~BIT_5;
else
flag2 |= BIT_5;
k = k * 3 + 0xee; //Select color temperature
R_Gain = Read24C16(k);
k++;
G_Gain = Read24C16(k);
k++;
B_Gain = Read24C16(k);
}
void LoadModeDependentSettings(void)
{
// Sharp,V_BP,H_BP,H_Tatol,Phase
unsigned short addr;
addr = 0x101 + (ModePoint * 8);
VP_Start = Read24C16(addr);
addr++;
HP_Start = Read24C16(addr);
addr++;
HP_Start <<= 8;
HP_Start |= Read24C16(addr);
addr++;
HTotal = Read24C16(addr);
addr++;
HTotal <<= 8;
HTotal |= Read24C16(addr);
addr = addr + 2;
ADC_Phase = Read24C16(addr);
}
void SaveModeDependentSettings(void)
{
unsigned short addr;
addr = 0x100 + (ModePoint * 8);
Write24C16(addr,Sharpness);
addr++;
Write24C16(addr,(unsigned char)VP_Start);
addr++;
Write24C16(addr,(unsigned char)(HP_Start >> 8));
addr++;
Write24C16(addr,(unsigned char)HP_Start);
addr++;
Write24C16(addr,(unsigned char)(HTotal >> 8));
addr++;
Write24C16(addr,(unsigned char)HTotal);
addr = addr + 2;
Write24C16(addr,ADC_Phase);
addr = 0x290 + (ModePoint << 1);
Write24C16(addr,(unsigned char)(HTotal >> 8));
addr++;
Write24C16(addr,(unsigned char)HTotal);
}
void RGB_Up(void)
{
unsigned char value;
switch(OSD_Point2){
case R_GainNode:
value = R_Gain;
break;
case G_GainNode:
value = G_Gain;
break;
case B_GainNode:
value = B_Gain;
break;
}
if(++value > 100)
value = 100;
else{
switch(OSD_Point2){
case R_GainNode:
R_Gain = value;
break;
case G_GainNode:
G_Gain = value;
break;
case B_GainNode:
B_Gain = value;
break;
}
sRGB();
ShowRGB();
}
}
void RGB_Down(void)
{
unsigned char value;
switch(OSD_Point2){
case R_GainNode:
value = R_Gain;
break;
case G_GainNode:
value = G_Gain;
break;
case B_GainNode:
value = B_Gain;
break;
}
if(--value == 0xff)
value = 0;
else{
switch(OSD_Point2){
case R_GainNode:
R_Gain = value;
break;
case G_GainNode:
G_Gain = value;
break;
case B_GainNode:
B_Gain = value;
break;
}
sRGB();
ShowRGB();
}
}
void ColorTempUp(void)
{
unsigned char i;
i = Read24C16(0xe1);
FillLineAttr(7,i+6,23,TextColor);
if(--i == 0xff){
i = 3;
}
FillLineAttr(7,i+6,23,TextSelColor);
Write24C16(0xe1,i);
i = ColorTab[i];
if((i == 0)||((flag3 & BIT_0) != 0))
flag2 &= ~BIT_5;
else
flag2 |= BIT_5;
i = i * 3 + 0xee; //Select color temperature
R_Gain = Read24C16(i);
i++;
G_Gain = Read24C16(i);
i++;
B_Gain = Read24C16(i);
sRGB();
CheckRGB();
}
void ColorTempDown(void)
{
unsigned char i;
i = Read24C16(0xe1);
FillLineAttr(7,i+6,23,TextColor);
if(++i > 3){
i = 0;
}
FillLineAttr(7,i+6,23,TextSelColor);
Write24C16(0xe1,i);
i = ColorTab[i];
if((i == 0)||((flag3 & BIT_0) != 0))
flag2 &= ~BIT_5;
else
flag2 |= BIT_5;
i = i * 3 + 0xee; //Select color temperature
R_Gain = Read24C16(i);
i++;
G_Gain = Read24C16(i);
i++;
B_Gain = Read24C16(i);
sRGB();
CheckRGB();
}
void LanguageUp(void)
{
unsigned char i;
i = Language >> 1;
if((Language & BIT_0) == 0)
FillLineAttr(8,i+6,11,TextColor);
else
FillLineAttr(19,i+6,11,TextColor);
if(--Language == 0xff){
Language = 6;
}
i = Language >> 1;
if((Language & BIT_0) == 0)
FillLineAttr(8,i+6,11,TextSelColor);
else
FillLineAttr(19,i+6,11,TextSelColor);
Write24C16(0xe0,Language);
if(PowerStatus == 0x80){
i = Language * 25 + OSD_Point2;
WriteXY_CStrScaler(0,7,3,23,Tab1[i]);
}
else{
i = Language * 11 + OSD_Point2;
WriteXY_CStrScaler(0,7,3,23,VideoTab1[i]);
}
}
void LanguageDown(void)
{
unsigned char i;
i = Language >> 1;
if((Language & BIT_0) == 0)
FillLineAttr(8,i+6,11,TextColor);
else
FillLineAttr(19,i+6,11,TextColor);
if(++Language > 6){
Language = 0;
}
i = Language >> 1;
if((Language & BIT_0) == 0)
FillLineAttr(8,i+6,11,TextSelColor);
else
FillLineAttr(19,i+6,11,TextSelColor);
Write24C16(0xe0,Language);
if(PowerStatus == 0x80){
i = Language * 25 + OSD_Point2;
WriteXY_CStrScaler(0,7,3,23,Tab1[i]);
}
else{
i = Language * 11 + OSD_Point2;
WriteXY_CStrScaler(0,7,3,23,VideoTab1[i]);
}
}
void SaturationUp(void)
{
if(++Saturation > 100)
Saturation = 100;
else{
if(PowerStatus == 0x80)
sRGB();
else
SetVideoSaturation();
ShowSaturation();
}
}
void SaturationDown(void)
{
if(--Saturation == 0xff)
Saturation = 0x00;
else{
if(PowerStatus == 0x80)
sRGB();
else
SetVideoSaturation();
ShowSaturation();
}
}
void TintUp(void)
{
if(++Tint > 100)
Tint = 100;
else{
if(PowerStatus == 0x80)
sRGB();
else
SetVideoTint();
ShowTint();
}
}
void TintDown(void)
{
if(--Tint == 0xff)
Tint = 0x00;
else{
if(PowerStatus == 0x80)
sRGB();
else
SetVideoTint();
ShowTint();
}
}
void SharpnessUp(void)
{
if(++Sharpness > 7)
Sharpness = 7;
else{
if(PowerStatus == 0x80)
SetSharpness();
else
SetVideoSharpness();
ShowSharpness();
}
}
void SharpnessDown(void)
{
if(--Sharpness == 0xff)
Sharpness = 0x00;
else{
if(PowerStatus == 0x80)
SetSharpness();
else
SetVideoSharpness();
ShowSharpness();
}
}
void SourceSelect(void)
{
if(PowerStatus < 0x80)
return;
switch(PowerStatus & ~BIT_7){
case 0x00:
VideoDisable();
ForceToBackground(0);
WriteIIC_HW(Scaler_Addr,0x00,0x30);
WriteIIC_HW(Scaler_Addr,0xE8,0xc0);
WriteIIC_HW(Scaler_Addr,0x12,0x00);
WriteIIC_HW(Scaler_Addr,0x13,0x00);
H_SYNC_Temp = 0xffff;
V_SYNC_Temp = 0xffff;
LoadModeIndependentSettings();
SetBrightness();
sRGB();
if((flag3 & BIT_2) != 0x00){
printf("Select PC Input\r\n");
}
break;
case 0x01:
SAA7114Init();
ShowInputSource();
if((flag3 & BIT_2) != 0x00){
printf("Select Video 1 Input\r\n");
}
break;
case 0x02:
SAA7114Init();
ShowInputSource();
if((flag3 & BIT_2) != 0x00){
printf("Select Video 2 Input\r\n");
}
break;
}
OSD_Point1 = 0;
OSD_Point2 = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -