?? utility.c
字號:
/*******************************************************************************
UTILITY.C
Copyright (c) HIMAX Technologies, Inc. All rights reserved.
*******************************************************************************/
#include <MTV230.H>
#include <DEFINE.H>
#include <MATH.H>
#define STABLE_TOLERANCE 50
#define STABLE_COUNT 240//about 20ms stable period
/*==============================================================================
==============================================================================*/
void DelayX1ms(unsigned int n) {
unsigned int i;
while(n--!=0)
for (i=0; i<86; i++)
;
}
/*==============================================================================
==============================================================================*/
void DelayX10ms(unsigned int n) {
unsigned int i;
while(n--!=0)
for (i=0; i<860; i++)
;
}
/*===========================================================================
===========================================================================*/
code unsigned char BIT_OPOR[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
code unsigned char BIT_OPAND[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
bit Get_Bit(unsigned char bytedata, unsigned char bit_pos) {
return ((bytedata&BIT_OPOR[bit_pos])!=0);
}
/*===========================================================================
===========================================================================*/
unsigned char Set_Bit(unsigned char bytedata, unsigned char bit_pos, bit set) {
unsigned char retdata;
retdata=bytedata&BIT_OPAND[bit_pos];
if(set)
retdata=retdata|BIT_OPOR[bit_pos];
return retdata;
}
/*==============================================================================
==============================================================================*/
unsigned int String_To_Int(unsigned char* StrPtr, unsigned char digit) {
unsigned int retvalue;
unsigned char i;
retvalue=0;
for(i=0; i<digit; i++) {
retvalue*=10;
if((*(StrPtr+digit-i)>='0')&&(*(StrPtr+digit-i)<='9'))
retvalue+=*(StrPtr+digit-i)-'0';
else
retvalue+=0;
}
return retvalue;
}
/*===========================================================================
===========================================================================*/
void Switch_Source(unsigned char v_source) {
BL=OFF;
OSD_Show(0,0,0,0,0);
Page=Item=badjust=0;
switch(v_source) {
case(AV1):
SA7114_Byte_Write(0x02, 0xc4);
SA7114_Byte_Write(0x09, 0x40);
SA7114_Byte_Write(0x0a, 0x72);
SA7114_Byte_Write(0x0b, 0x30);
SA7114_Byte_Write(0x14, SA7114_Byte_Read(0x14)&0xfc|0x02);
ParaAddress=EE_AV1_PARA;
SEL_A=LOW;
SEL_B=HIGH;
MSP_Source_Select(SCART1_DA, SCART, STEREO);
MSP_Source_Select(LOUDSPEAKER, SCART, STEREO);
MSP_SCART1_Source_Select(SC1_IN);
break;
case(AV2):
SA7114_Byte_Write(0x02, 0xc6);
SA7114_Byte_Write(0x09, 0xc0);
SA7114_Byte_Write(0x0a, 0x72);
SA7114_Byte_Write(0x0b, 0x35);
SA7114_Byte_Write(0x14, SA7114_Byte_Read(0x14)&0xfc|0x01);
ParaAddress=EE_AV2_PARA;
SEL_A=HIGH;
SEL_B=LOW;
MSP_Source_Select(SCART1_DA, SCART, STEREO);
MSP_Source_Select(LOUDSPEAKER, SCART, STEREO);
MSP_SCART1_Source_Select(SC1_IN);
break;
case(AV3):
SA7114_Byte_Write(0x02, 0xc9);
SA7114_Byte_Write(0x09, 0xc0);
SA7114_Byte_Write(0x0a, 0x72);
SA7114_Byte_Write(0x0b, 0x35);
SA7114_Byte_Write(0x14, SA7114_Byte_Read(0x14)&0xfc|0x01);
ParaAddress=EE_AV3_PARA;
SEL_A=LOW;
SEL_B=LOW;
MSP_Source_Select(SCART1_DA, SCART, STEREO);
MSP_Source_Select(LOUDSPEAKER, SCART, STEREO);
MSP_SCART1_Source_Select(SC2_IN);
break;
case(TV):
SA7114_Byte_Write(0x02, 0xc5);
SA7114_Byte_Write(0x09, 0x40);
SA7114_Byte_Write(0x0a, 0x72);
SA7114_Byte_Write(0x0b, 0x35);
SA7114_Byte_Write(0x14, SA7114_Byte_Read(0x14)&0xfc|0x02);
ParaAddress=EE_TV_PARA;
SEL_A=HIGH;
SEL_B=HIGH;
MSP_Source_Select(SCART1_DA, STEREOORAB, MONO);
MSP_Source_Select(LOUDSPEAKER, STEREOORA, STEREO);
Set_Channel(Channel);
break;
}
Contrast=EE_MCU_Byte_Read(ParaAddress+EE_CONTRAST);
Brightness=EE_MCU_Byte_Read(ParaAddress+EE_BRIGHTNESS);
Saturation=EE_MCU_Byte_Read(ParaAddress+EE_SATURATION);
Hue=EE_MCU_Byte_Read(ParaAddress+EE_HUE);
Sharpness=EE_MCU_Byte_Read(ParaAddress+EE_SHARPNESS);
Set_7114_Contrast(EE_MCU_Byte_Read(ParaAddress+EE_7114_CONTRAST));
Set_7114_Luminance(EE_MCU_Byte_Read(ParaAddress+EE_7114_LUMINANCE));
BL_VOLT=EE_MCU_Byte_Read(ParaAddress+EE_BACK_LIGHT);
Set_Color_Temp(Color_Temp);
Set_Contrast(Contrast);
Set_Brightness(Brightness);
Set_Saturation(Saturation);
Set_Hue(Hue);
}
/*===========================================================================
===========================================================================*/
void Power_Sequence(bit yes) {
if(yes) {
PSC1=LOW;
DelayX10ms(1);
LVDS_EN=HIGH;
// STV_Byte_Write(0x0f, 0x02);//remove first line
// STV_Byte_Write(0x11, 0x02);
DelayX10ms(10);
// STV_Byte_Write(0x0f, 0x00);//remove first line
// STV_Byte_Write(0x11, 0x00);
DelayX10ms(40);
BL=LOW;
DelayX10ms(10);
AV_PD=LOW;
DelayX10ms(50);
MUTE=LOW;
}
else {
MUTE=HIGH;
AV_PD=HIGH;
BL=HIGH;
LVDS_EN=LOW;
PSC1=HIGH;
}
}
/*===========================================================================
===========================================================================*/
unsigned int Channel_EEPROM_Address(void) {
return EE_CHANNEL_AIR+TV_Mode;
}
/*===========================================================================
===========================================================================*/
unsigned int ChannelTable_EEPROM_Address(void) {
return EE_TV_AIR_CHANNEL_TABLE+TV_Mode*0x20;
}
/*===========================================================================
===========================================================================*/
unsigned int ChannelLockTable_EEPROM_Address(void) {
return EE_AIR_CHANNEL_LOCK_TABLE+TV_Mode*0x20;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -