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

📄 mcu.i

📁 NOVATEK公司的LCD_CONTROLLER源代码 液晶显示器驱动板源代码NT68521
💻 I
📖 第 1 页 / 共 2 页
字号:
 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 + -