📄 mcu.i
字号:
void ShowVideoSubMenu(void); void VideoValueUp(void); void VideoValueDown(void); void VideoUnSelectIcon(void); void VideoSelectItem(void); enum{ NotSaveSaveFlag, BrightnessSaveFlag, ContrastSaveFlag, ClockSaveFlag, PhaseSaveFlag, HP_SaveFlag, VP_SaveFlag, R_GainSaveFlag, G_GainSaveFlag, B_GainSaveFlag, VolumeSaveFlag, OSD_X_SaveFlag, OSD_Y_SaveFlag, OSD_TimerSaveFlag, SaturationSaveFlag, TintSaveFlag, SharpnessSaveFlag, InverterSaveFlag, Osd_ControlSaveFlag }; enum{ BrightnessNode, ContrastNode, PhaseNode, ClockNode, HP_Node, VP_Node, RecallNode, ColorTempNode, R_GainNode, G_GainNode, B_GainNode, LanguageNode, MisceNode, ExitMainMenuNode, ExitMisceMenuNode, OSD_X_Node, OSD_Y_Node, OSD_TimerNode, OSD_RotationNode, OSD_FlipNode, OSD_MirrorNode, AutoColorNode, SaturationNode, TintNode, SharpnessNode }; enum{ AvBrightnessNode, AvContrastNode, AvSaturationNode, AvTintNode, AvSharpnessNode, AvLanguageNode, AvRecallNode, AvOSD_X_Node, AvOSD_Y_Node, AvOSD_TimerNode, AvExitMainMenuNode }; #line 11 "SRC\MCU.C" /0 #line 1 "SRC\MODEHANDLE.H" /0 void GetCounter(void); void CheckFreq(void); void GetMode(void); void SetUserMode(void); void SyncSource(void); void NoSync(void); void SetMinMax(void); void CheckModeChange(void); void GoToSeparateSync(void); void GoToCompositeSync(void); void CheckSOG(void); #line 12 "SRC\MCU.C" /0 #line 1 "SRC\SRGB.H" /0 int sine(unsigned char alpha); int cosine(unsigned char alpha); void product(int *first, int * second, int *result); void sRGB(void); #line 13 "SRC\MCU.C" /0 code unsigned char KeyTab[]={ 0x00,0x20,0x40,0x60,0x7f }; code unsigned char SystemRegTab[]={ 0xff, 0xff, 0x6c, #line 25 "SRC\MCU.C" /1 #line 27 "SRC\MCU.C" /0 0x6e, 0x55, 0x98, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x40, 0xFF, 0x1F, 0x6e, 0xFF, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xF3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x08, 0xE0, 0x00, 0x00, 0x0E, 0x20, 0x20, 0x20, 0x20, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x20, 0x03, 0x40, 0x00, 0xFF, 0x1f, 0xff, 0x04, 0x64, }; void InitMCU(void) { unsigned char *p; unsigned char i; p = &PortA; for(i=0; i<0x4A; i++){ *p = SystemRegTab[i]; p++; } TMOD &= 0xf0; TMOD |= 0x02; TL0 = -250; TH0 = -250; TCON &= 0xcf; TCON |= 0x10; TMOD &= 0x0f; TMOD |= 0x20; TL1 = 0xf3; TH1 = 0xf3; TCON &= 0x3f; TCON |= 0x40; SCON = 0x52; PCON |= 0x80; CmdTxPtr1 = 0; CmdTxPtr2 = 0; CmdRxPtr1 = 0; CmdRxPtr2 = 0; T0_INT_CNT = 0; rwbuf = 0; abuf = 0; dbuf = 0; IE = 0x86; #line 141 "SRC\MCU.C" /1 #line 143 "SRC\MCU.C" /0 flag3 = 0; Sleep(50); PowerStatus = 0xff; IIC_BaudRate = 0x02; LoadDDCData(1); } void Timer0(void) interrupt 1 using 2 { if(++T0_INT_CNT >= 4){ T0_INT_CNT = 0; if(Timer1 != 0) Timer1--; if(++Timer10ms >= 10){ CLRWDT = 0x55; Timer10ms = 0; if(Timer2 != 0) Timer2--; if(Timer3 != 0) Timer3--; if(Timer4 != 0) Timer4--; if(RepeatTimer != 0) RepeatTimer--; if(PoSvTimer != 0) PoSvTimer--; } } } void Sleep(unsigned short time) { Timer1 = time; while(Timer1 != 0){ } } void WaitSetup(unsigned short time) { Timer1 = time; while(Timer1 != 0){ CheckModeChange(); } } void ScanKeyPad(void) { unsigned char Temp; Timer1 = 0; Temp=PortA; Timer1=10; while(Timer1); Temp&=PortA; Timer1=10; while(Timer1); KeyBuffer=(~Temp)&0x1F; switch(KeyBuffer){ case 0x10: KeyBuffer=0x22; break; case 0x08: KeyBuffer=0x24; break; case 0x04: KeyBuffer=0x04; break; case 0x02: KeyBuffer=0x42; break; case 0x01: KeyBuffer=0x40; break; default: KeyBuffer=0xff; break; } if(KeyBuffer==KeyTemp1){flag1 &=~0x04;KeyTemp1=KeyBuffer;KeyBuffer=0xff;} else {flag1 |= 0x04; KeyTemp1=KeyBuffer;} if((flag1 & 0x04) != 0x00){ if((flag3 & 0x04) != 0x00) printf("KeyBuffer = %x\r\n",(unsigned short)KeyBuffer); Repeat = KeyBuffer; RepeatTimer = 100; } else{ if((RepeatTimer == 0)&&((OSD_Type > 0x00)||(OSD_Type < 0x04))){ switch(Repeat){ case 0x04: KeyBuffer = Repeat; RepeatTimer = 3; break; case 0x24: KeyBuffer = Repeat; RepeatTimer = 3; break; } } } } void CheckKey(void) { ScanKeyPad(); if((PowerStatus & 0x80) == 0){ if(KeyBuffer == 0x24){ ModePoint = 0xff; } if(KeyBuffer == 0x04){ ModePoint--; } if(KeyBuffer != 0x22){ KeyBuffer = 0xff; } } else if(((PortC & 0x80) == 0)||((flag3 & 0x02) != 0)){ #line 380 "SRC\MCU.C" /1 #line 382 "SRC\MCU.C" /0 if((KeyBuffer != 0x22)&&(KeyBuffer != 0x41)){ KeyBuffer = 0xff; } } switch(KeyBuffer){ case 0x22: KeyBuffer = 0xff; if((PowerStatus & 0x80) == 0){ PowerStatus |= 0x80; Write24C16(0xcc,PowerStatus); flag1 &= ~0x01; if((flag1 & 0x08) == 0){ flag1 |= 0x08; ForceToBackground(0); PoSvTimer = 500; } if(ModePoint == 0xfc){ LED_RedOn(); InitEEPROM(); LED_RedOff(); LoadModeIndependentSettings(); LoadADC_Gain(); SetBrightness(); sRGB(); SetSharpness(); } ScalerPowerUp(); DVI_On(); SourceSelect(); } else{ OSD_OFF(); PowerStatus &= ~0x80; Write24C16(0xcc,PowerStatus); if((flag3 & 0x01) != 0){ Write24C16(0xcd,0x00); flag3 &= ~0x01; } PowerSaving(); DIG_Off(); DIV_PWND(); LED_RedOff(); LED_GrnOff(); } break; case 0x42: if(PowerStatus == 0x80){ NodeToggle=0; MainMenu(); } else VideoMenu(); Timer2 = (unsigned short)OSD_Timer * 100; break; case 0x04: if(NodeToggle==1){ if(PowerStatus == 0x80) ValueDown(); else VideoValueDown(); } else{ if(OSD_Type == 1){ if(PowerStatus == 0x80) SelectItem(); else VideoSelectItem(); } } Timer2 = (unsigned short)OSD_Timer * 100; break; case 0x24: if(NodeToggle==1){ if(PowerStatus == 0x80) ValueUp(); else VideoValueUp(); } else{ if(OSD_Type == 1){ if(PowerStatus == 0x80) SelectItem(); else VideoSelectItem(); } } Timer2 = (unsigned short)OSD_Timer * 100; break; case 0x40: if((PowerStatus == 0x80)&&(SyncMode != 3)&&((flag1 & 0x02) == 0)){ if(OSD_Type == 0){ ShowAutoAdj(); AutoTune(); OSD_OFF(); } } if(OSD_Type == 1){ NodeToggle=~NodeToggle; } else if((OSD_Type == 6)||(OSD_Type == 3)){ OSD_OFF(); } KeyBuffer = 0xff; break; case 0x41: if((DeviceFlag & 0x01) != 0){ if(++PowerStatus > 0x82){ PowerStatus = 0x80; } Write24C16(0xcc,PowerStatus); SourceSelect(); } KeyBuffer = 0xff; break; } } void LED_GrnOn(void) { unsigned char port; port = PortD; port |= RDPD_REG; port |= 0x02; PortD= port; } void LED_GrnOff(void) { unsigned char port; port = PortD; port |= RDPD_REG; port &= ~0x02; PortD= port; } void LED_RedOn(void) { unsigned char port; port = PortD; port |= RDPD_REG; port |= 0x01; PortD= port; } void LED_RedOff(void) { unsigned char port; port = PortD; port |= RDPD_REG; port &= ~0x01; PortD= port; } void BackLightOn(void) { unsigned char port; port = PortC; port |= RDPC_REG; port &= ~0x40; PortC = port; MuteTimer = 0; printf("on\n"); } void BackLightOff(void) { unsigned char port; port = PortC; port |= RDPC_REG; port |= 0x40; PortC = port; printf("off\n"); } void PanelPowerOn(void) { unsigned char port; port = PortC; port |= RDPC_REG; port |= 0x80; PortC= port; Sleep(5); } void PanelPowerOff(void) { unsigned char port; port = PortC; port |= RDPC_REG; port &= ~0x80; PortC= port; } #line 604 "SRC\MCU.C" /1 #line 624 "SRC\MCU.C" /0 void ResetOff(void) { unsigned char port; port = PortC; port |= RDPC_REG; port |= 0x20; PortC = port; } void ResetOn(void) { unsigned char port; port = PortC; port |= RDPC_REG; port &= ~0x20; PortC = port; } void AUDIO_MUTE(void) { unsigned char port; port = PortC; port |= RDPC_REG; port |= 0x08; PortC = port; } void AUDIO_On(void) { unsigned char port; port = PortC; port |= RDPC_REG; port &= ~0x08; PortC = port; } void AMP_STBY(void) { } void AMP_On(void) { } void DIG_SEL(void) { } void DIG_Off(void) { } void DVI_On(void) { } void DIV_PWND(void) { } void VideoEnable(void) { } void VideoDisable(void) { } void IntGroup1(void) interrupt 2 using 3 { unsigned char i,DataBuf; if((INT_SRC & 0x20) != 0){ i = INTIIC0_FLG; if(i & 0x10){ DataBuf = IIC0_DATA; INTIIC0_FLG = (0x10 | 0x04); if((DataBuf & 0xFE) == 0x6e){ if(IIC0_CON & 0x20){ IIC0_DATA = CmdTxBuffer[0]; } else{ } } flag3 |= 0x40; } else if(i & 0x08){ if(CmdTxPtr1 != CmdTxPtr2){ i = CmdTxBuffer[CmdTxPtr1++]; checksum ^= i; IIC0_DATA = i; } else{ IIC0_DATA = checksum; } INTIIC0_FLG = 0x08; } else if(i & 0x04){ CmdRxBuffer[CmdRxPtr1++] = IIC0_DATA; if(CmdRxPtr1 > 63) CmdRxPtr1 = 2; INTIIC0_FLG = 0x04; } else if(i & 0x02){ INTIIC0_FLG = 0x02; } else if(i & 0x01){ INTIIC0_FLG = 0x01; flag3 |= 0x80; flag3 &= ~0x40; } } } void CheckDDC2Bi(void) { unsigned char cmd; if((flag3 & 0x80) != 0){ checksum = 0; while(CmdRxPtr1 != CmdRxPtr2){ cmd = CmdRxBuffer[CmdRxPtr2++]; checksum ^= cmd; if(CmdRxPtr2 > 15) CmdRxPtr2 = 2; } CmdTxPtr1 = 0; CmdTxPtr2 = 0; CmdRxPtr1 = 0; CmdRxPtr2 = 0; flag3 &= ~0x80; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -