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

📄 scaler.i

📁 NOVATEK公司的LCD_CONTROLLER源代码 液晶显示器驱动板源代码NT68521
💻 I
📖 第 1 页 / 共 3 页
字号:
 extern idata unsigned char	Inverter;  extern xdata unsigned char	CmdTxPtr1; extern xdata unsigned char	CmdTxPtr2; extern xdata unsigned char	CmdRxPtr1; extern xdata unsigned char	CmdRxPtr2; extern xdata unsigned char	CmdTxBuffer[]; extern xdata unsigned char	CmdRxBuffer[]; extern xdata unsigned char	Saturation; extern xdata unsigned char	Tint; extern xdata unsigned char	DeviceFlag; extern xdata unsigned char IIC_BaudRate; extern xdata unsigned char	OSD_Control; extern xdata unsigned char TempValue; extern xdata unsigned short MoveX; extern xdata unsigned short MoveY; extern xdata unsigned char	MuteTimer; extern xdata unsigned char	checksum; extern bit NodeToggle;       #line 9 "SRC\Scaler.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 10 "SRC\Scaler.C" /0   #line 1 "SRC\OSD.H" /0                                                                                          extern code unsigned char IconPosition[]; extern code unsigned char ClearLine1[]; extern code unsigned char ClearLine2[]; extern code unsigned char ClearLine3[]; extern code unsigned char MenuItem[]; extern code unsigned char *SourceTab[];  void OsdInit(void); void Osd2Init(void); void Osd3Init(void); void Osd4Init(void); void LoadFont(void); void ShowMainMenu(void); void MainMenu(void); void ClearOSD(void); void OSD_OFF(void); void ShowSubMenu(void); void ValueUp(void); void ValueDown(void); void ShowT_Bar(void); void ShowBrightness(void); void ShowContrast(void); void ShowClock(void); void ShowPhase(void); void ShowHP(void); void ShowVP(void); void ShowNO_YES(unsigned char i); void SetPosition(void); void ShowVersion(void); void ClearText(void); void ShowOutOfRange(void); void ShowNoSync(void); void ShowDisconnector(void); void SaveData(void); void ShowAutoAdj1(void); void ShowAutoAdj(void); void ShowRGB(void); void ShowOSD_X(void); void ShowOSD_Y(void); void ShowOSD_Timer(void); void ShowColorTemperature(void); void ShowLanguage(void); void SelectItem(void); void WriteSequenceScaler(unsigned char addr,unsigned char *p); void WriteStringScaler(unsigned char Attr,unsigned char *p); void WriteXY_StrScaler(unsigned char Attr,unsigned char x,unsigned char y,unsigned char *p); void FillLineAttr(unsigned char x,unsigned char y,unsigned char l,unsigned short Attr); void UnselectIcon(void); void WriteXY_CStrScaler(unsigned char Attr,unsigned char x,unsigned char y,unsigned char w,unsigned char *p); void CheckRGB(void); void ShowMisceMenu(void); void ShowInverter(void); void ShowSaturation(void); void ShowTint(void); void ShowSharpness(void); void SetMovePosition(void); void ShowVolume(); void DirectVolume(); void ShowValue(unsigned char Attr,unsigned char value); void ShowSliderBar(unsigned char x,unsigned char y,unsigned char value); void ShowFreq(void); void ShowResolution(void); void ShowNum(unsigned char Attr,unsigned char xx,unsigned char yy,unsigned char value); void ShowInputSource(void); void VideoMenu(void); void ShowVideoMenu(void); 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\Scaler.C" /0   #line 14 "SRC\Scaler.C" /1   #line 16 "SRC\Scaler.C" /0    #line 20 "SRC\Scaler.C" /1   #line 22 "SRC\Scaler.C" /0    #line 26 "SRC\Scaler.C" /1   #line 28 "SRC\Scaler.C" /0    #line 32 "SRC\Scaler.C" /1   #line 34 "SRC\Scaler.C" /0         code unsigned short H_ActiveTab[]={  1280,720,1280,800,832,1024,1152,1280,1280,1600,1280,848,1152,720 }; code unsigned short V_ActiveTab[]={ 350,400,480,600,624,768,864,960,1024,1200,720,480,870,576 };  #line 51 "SRC\Scaler.C" /1                           #line 78 "SRC\Scaler.C" /0 #line 79 "SRC\Scaler.C" /1              #line 93 "SRC\Scaler.C" /0 #line 94 "SRC\Scaler.C" /1              #line 108 "SRC\Scaler.C" /0  #line 110 "SRC\Scaler.C" /1                     #line 176 "SRC\Scaler.C" /0  void UpdatePresetData(void) { code unsigned char UpdateSquenceTable[]={ 0x0a,0x09,0x0B,0x0C,0x12,0x13,0x14,0x15, 0x16,0x17,0x18,0x19,0x1A,0x1B,0x4D,0x5E, 0x5F,0x60,0x61,0x63,0x6f };  code unsigned char D1024x768[]={ 0x1E,0x05,0x51,0x84,0x08,0x00,0x1D,0x00, 0x00,0x03,0x95,0x00,0x00,0x04,0x00,(unsigned char)0x0333,  (unsigned char)(0x0333 >> 8),0x03,((0xff & 0x01) | (0xff & 0x02) | (0x00 & 0x04) | (0x00 & 0x08)),0x00,0x0f };  unsigned char i; for(i=0; i<21; i++){ WriteIIC_HW(0xB0,UpdateSquenceTable[i],D1024x768[i]); } }  void InitScaler(void) { unsigned char i; code unsigned char InitTab[30][2]={ {0x01,(0x48|0x01)}, {0x4E,(unsigned char)806},{0x4F,(unsigned char)(806>>8)},   {0x50,(unsigned char)768},{0x51,(unsigned char)(768>>8)},   {0x52,(unsigned char)780 - 3 - 7},{0x53,(unsigned char)(780 - 3 - 7>>8)},   {0x54,(unsigned char)780 - 3 - 7 + 3},{0x55,(unsigned char)(780 - 3 - 7 + 3>>8)},   {0x56,(unsigned char)1210},{0x57,(unsigned char)(1210>>8)},   {0x58,(unsigned char)1024},{0x59,(unsigned char)(1024>>8)},   {0x5A,(unsigned char)1210 - 60 - 60},{0x5B,(unsigned char)(1210 - 60 - 60>>8)},   {0x5C,(unsigned char)1210 - 60 - 60 + 60},{0x5D,(unsigned char)(1210 - 60 - 60 + 60>>8)},   {0x85,0x04},	  {0x86,0xc0},   {0x87,0xc0},   {0x88,0xc8},   {0x8b,0x0f}, {0x91,0xFF},   {0x92,0x00},   {0x93,0x40},   {0x94,0xa6},	  {0xe6,0x03}, {0xf8,7}, {0xfd,0x05},  };  if((flag3 & 0x04) != 0x00) printf("Init Scaler\r\n"); TCONInit();  for(i=0; i<29; i++)	{ WriteIIC_HW(0xB0,InitTab[i][0],InitTab[i][1]); } UpdatePresetData(); if(0 == 0){ WriteIIC_HW(0xB0,0xfa,0x40); WriteIIC_HW(0xB0,0xfb,0xc3); WriteIIC_HW(0xB0,0xfe,0x02); } else if(0 == 1){ WriteIIC_HW(0xB0,0xfa,0x00); WriteIIC_HW(0xB0,0xfb,0x00); WriteIIC_HW(0xB0,0xfe,0xc0); } else if(0 == 2){ WriteIIC_HW(0xB0,0xfa,0xc0); WriteIIC_HW(0xB0,0xfb,0x00); WriteIIC_HW(0xB0,0xfe,0xc1); } else{ WriteIIC_HW(0xB0,0xfa,0x00); WriteIIC_HW(0xB0,0xfb,0x00); WriteIIC_HW(0xB0,0xfe,0xc1); }   SetDPLL(60000*1210);  WriteIIC_HW(0xB0,0x03,0x00); WriteIIC_HW(0xB0,0x05,0x00); WriteIIC_HW(0xB0,0x07,0x00); WriteIIC_HW(0xB0,0x40,0x01); WriteIIC_HW(0xB0,0xf4,0xc0); WriteIIC_HW(0xB0,0x4c,(0x68 | (0x00 & 0x04) | (0xff & 0x02) | (0x00 & 0x01))); WriteIIC_HW(0xB0,0x4d,0x02);  WriteIIC_HW(0xB0,0x42,0x3a); WriteIIC_HW(0xB0,0x43,0x43);     WriteWordIIC_HW(0xB0,0x75,0x20);  WriteIIC_HW(0xB0,0xb3,0x09); WriteIIC_HW(0xB0,0xd6,0xb1);		  if((flag3 & 0x04) != 0x00) printf("LG_LM150X06_A4\r\n"); DVI_On(); }  void TCONInit(void) { unsigned char i; WriteIIC_HW(0xB0,0xFF,0x01);   #line 285 "SRC\Scaler.C" /1            #line 297 "SRC\Scaler.C" /0  i = (0x00 << 1) | 0x01; WriteIIC_HW(0xB0,0xf5,i);  WriteIIC_HW(0xB0,0xFF,0x00);   } #line 304 "SRC\Scaler.C" /1                        #line 328 "SRC\Scaler.C" /0 void SetADC_Phase(void) { WriteIIC_HW(0xB0,0xFF,0x01);   WriteIIC_HW(0xB0,0xD9,ADC_Phase); WriteIIC_HW(0xB0,0xFF,0x00);   }  void SetADC_PLL(void) { unsigned long PixelRate,H_Counter; unsigned short addr; unsigned char ch,k; float temp; PixelRate = ((unsigned long)HTotal * H_SYNC)/10000; ch = (unsigned char)PixelRate;  WriteIIC_HW(0xB0,0xFF,0x01);    WriteIIC_HW(0xB0,0xd0,0x43);  addr = 0x106 + (ModePoint * 8); k = Read24C16(addr); flag3 &= ~0x02;		  if((ch > 140)||(k == 9)) flag3 |= 0x02;		  if((H_SYNC > 85 * 10)||(H_SYNC < 28 * 10)) flag3 |= 0x02;		  if((V_SYNC > 80 * 10)||(V_SYNC < 55 * 10)) flag3 |= 0x02;		   if((flag1 & 0x02) == 0){ k = ReadIIC_HW(0xB0,0xd1) & 0x03; } else{ if(ch > 100){ WriteIIC_HW(0xB0,0xd1,0x10); k = 0; } else if (ch > 50){ WriteIIC_HW(0xB0,0xd1,0x11); k = 1; } else{ WriteIIC_HW(0xB0,0xd1,0x12); k = 2; } } if((flag3 & 0x04) != 0x00){ printf("Htotal = %d\r\n",HTotal); printf("PixelRate = %d MHz\r\n",(unsigned short)PixelRate); } if((SyncMode == 0)||(SyncMode == 3)) WriteIIC_HW(0xB0,0xd6,0xbf); else WriteIIC_HW(0xB0,0xd6,0xa0); WriteIIC_HW(0xB0,0xdb,0x0c);  if((flag1 & 0x02) == 0){  if((SyncMode == 1)||(SyncMode == 2)){   WriteIIC_HW(0xB0,0xd5,0x0D); } else{ if((HV_Pol & 0x10) == 0){ WriteIIC_HW(0xB0,0xd5,0x05); } else{ WriteIIC_HW(0xB0,0xd5,0x0d); } }  ch = ReadIIC_HW(0xB0,0xdf) & 0x3f; PixelRate = ch; PixelRate <<= 8; ch = ReadIIC_HW(0xB0,0xde); PixelRate += ch; PixelRate <<= 8; ch = ReadIIC_HW(0xB0,0xdd); PixelRate += ch; } else{ WriteIIC_HW(0xB0,0xd5,0x00); H_Counter = 0; Timer3 = 25; while(Timer3 != 0){ ch = ReadIIC_HW(0xB0,0xdf) & 0x3f; PixelRate = ch; PixelRate <<= 8; ch = ReadIIC_HW(0xB0,0xde); PixelRate += ch; PixelRate <<= 8; ch = ReadIIC_HW(0xB0,0xdd); PixelRate += ch;  if(PixelRate > H_Counter){ if((PixelRate - H_Counter ) >  2){ H_Counter = PixelRate; Timer3 = 25; } } else{ if((H_Counter - PixelRate ) >  2){ H_Counter = PixelRate; Timer3 = 25; } } } } if((flag3 & 0x04) != 0x00){ printf("Hcounter = %x %x\r\n",(unsigned short)(PixelRate>>16),(unsigned short)PixelRate); } temp = ((float)HTotal * 536870912) / PixelRate; PixelRate = temp; if((flag3 & 0x04) != 0x00){ printf("DSS = %x %x\r\n",(unsigned short)(PixelRate>>16),(unsigned short)PixelRate); } for(k; k>0; k--){ PixelRate <<= 1; } WriteIIC_HW(0xB0,0xd2,(unsigned char)PixelRate); WriteIIC_HW(0xB0,0xd3,(unsigned char)(PixelRate>>8)); WriteIICV_HW(0xB0,0xd4,(unsigned char)(PixelRate>>16));  WriteWordIIC_HW(0xB0,0xd7,HTotal);  if((SyncMode == 1)||(SyncMode == 2)){   WriteIIC_HW(0xB0,0xd5,0x0D); } else{ if((HV_Pol & 0x10) == 0){ WriteIIC_HW(0xB0,0xd5,0x07); } else{ WriteIIC_HW(0xB0,0xd5,0x0F); } }  WriteIIC_HW(0xB0,0xFF,0x00);   }  void SetScaler(void) { unsigned char r; unsigned short i,DispActiveHeight,dstVtotal,DV_HFreq,dstHtotal; unsigned long dclk; if(ModePoint >= 50) return; if(SyncMode != 3){ SetHP(); SetVP(); }   i = 0x106 + (ModePoint * 8); r = Read24C16(i); H_Act = H_ActiveTab[r]; if((flag3 & 0x04) != 0x00){ printf("Resolution = %d x %d\r\n",H_ActiveTab[r],V_ActiveTab[r]); }  if((flag3 & 0x40) != 0){ WriteWordIIC_HW(0xB0,0x16,V_ActiveTab[r]>>1);		  i = V_ActiveTab[r]>>1; } else{ WriteWordIIC_HW(0xB0,0x16,V_ActiveTab[r]);		  i = V_ActiveTab[r]; } WriteWordIIC_HW(0xB0,0x1a,H_ActiveTab[r]);		  if(H_Act == 1024) WriteIIC_HW(0xB0,0x43,0x43); else WriteIIC_HW(0xB0,0x43,0x00);  dclk = ((unsigned long)768 * VTotal / V_ActiveTab[r]) * V_SYNC * 1210 / 10000;	  DispActiveHeight = 768;				  dstHtotal = 1210;  dstVtotal = ((((unsigned long)VTotal * DispActiveHeight) << 4) / V_ActiveTab[r] + 8) >> 4;	   if(dclk < 50000){                             dstHtotal = 1344; } else if(dclk > 80000){ DispActiveHeight = (unsigned long)768 * 80000 / dclk; if(i < 768) i = (unsigned long)i * dclk / 80000; WriteWordIIC_HW(0xB0,0x16,i);		   dstVtotal = ((((unsigned long)VTotal * DispActiveHeight) << 4) / V_ActiveTab[r] + 8) >> 4;	  } dclk = ((long)dstHtotal * dstVtotal * V_SYNC + 5) / 10;  if(dstVtotal < 780){ dstVtotal = 780; dstHtotal = 1344; dclk = ((unsigned long)1344 * dstVtotal* V_SYNC + 5) / 10;	  DV_HFreq = dclk / 1210 / 100; } else{  DV_HFreq = (unsigned short)((unsigned long)dstVtotal * V_SYNC / 1000); }  SetDPLL(dclk);  Sleep(80); dstHtotal = ReadWordIIC_HW(0xB0,0x67) & 0x07ff; dstVtotal = dclk * 10 / dstHtotal / V_SYNC;	  if((flag3 & 0x04) != 0x00){ printf("DCLK = 0x%x 0x%x\r\n",(unsigned short)(dclk >> 16),(unsigned short)dclk); printf("DispActiveHeight = %d\r\n",DispActiveHeight); printf("DispHFreq = %d\r\n",DV_HFreq); printf("dstVtotal = %d\r\n",dstVtotal); printf("dstHtotal = %d\r\n",dstHtotal); }  WriteWordIIC_HW(0xB0,0x4e,dstVtotal);		  dstVtotal = dstVtotal - 3 - 7; WriteWordIIC_HW(0xB0,0x52,dstVtotal);		  dstVtotal = dstVtotal + 3; WriteWordIIC_HW(0xB0,0x54,dstVtotal);		   WriteWordIIC_HW(0xB0,0x56,dstHtotal);		  dstHtotal = dstHtotal - 60 - 60; WriteWordIIC_HW(0xB0,0x5a,dstHtotal);		  dstHtotal = dstHtotal + 60; WriteWordIIC_HW(0xB0,0x5c,dstHtotal);		  }  void SetScalerAV(void) { unsigned char Vfreq; unsigned short DispActiveHeight,dstVtotal,DV_HFreq,dstHtotal,i; unsigned long dclk; code unsigned short H_ActTab[]={ 680,680 }; code unsigned short V_ActTab[]={ 232,278 }; if((flag2 & 0x04) == 0) Vfreq = 1; else Vfreq = 0; if(Vfreq == 0){		  WriteWordIIC_HW(0xB0,0x18,150);		  WriteWordIIC_HW(0xB0,0x14,0x6015);	  H_SYNC = 157; V_SYNC = 599; VTotal = 262;  } else{				  WriteWordIIC_HW(0xB0,0x18,159);		  WriteWordIIC_HW(0xB0,0x14,0x0019);	  H_SYNC = 156; V_SYNC = 500; VTotal = 302;  }   H_Act = H_ActTab[Vfreq]; if((flag3 & 0x04) != 0x00){ printf("Resolution = %d x %d\r\n",H_ActTab[Vfreq],V_ActTab[Vfreq]); } WriteWordIIC_HW(0xB0,0x16,V_ActTab[Vfreq]);		  i = V_ActTab[Vfreq]; WriteWordIIC_HW(0xB0,0x1a,H_ActTab[Vfreq]);		   dclk = ((unsigned long)768 * VTotal / V_ActTab[Vfreq]) * V_SYNC * 1210 / 10000;	  DispActiveHeight = 768;				  dstHtotal = 1210;  dstVtotal = ((((unsigned long)VTotal * DispActiveHeight) << 4) / V_ActiveTab[Vfreq] + 8) >> 4;	   if(dclk < 50000){                             dstHtotal = 1344; } else if(dclk > 80000){ DispActiveHeight = (unsigned long)768 * 80000 / dclk; if(i < 768) i = (unsigned long)i * dclk / 80000; WriteWordIIC_HW(0xB0,0x16,i);		   dstVtotal = ((((unsigned long)VTotal * DispActiveHeight) << 4) / V_ActiveTab[Vfreq] + 8) >> 4;	  } dclk = ((long)dstHtotal * dstVtotal * V_SYNC + 5) / 10;  if(dstVtotal < 780){ dstVtotal = 780; dstHtotal = 1344; dclk = ((unsigned long)1344 * dstVtotal* V_SYNC + 5) / 10;	  DV_HFreq = dclk / 1210 / 100; } else{  DV_HFreq = (unsigned short)((unsigned long)dstVtotal * V_SYNC / 1000); }  SetDPLL(dclk);  Sleep(80); dstHtotal = ReadWordIIC_HW(0xB0,0x67) & 0x07ff; dstVtotal = dclk * 10 / dstHtotal / V_SYNC;	  if((flag3 & 0x04) != 0x00){ printf("DCLK = 0x%x 0x%x\r\n",(unsigned short)(dclk >> 16),(unsigned short)dclk); printf("DispActiveHeight = %d\r\n",DispActiveHeight); printf("DispHFreq = %d\r\n",DV_HFreq); printf("dstVtotal = %d\r\n",dstVtotal); printf("dstHtotal = %d\r\n",dstHtotal); }  WriteWordIIC_HW(0xB0,0x4e,dstVtotal);		  dstVtotal = dstVtotal - 3 - 7; WriteWordIIC_HW(0xB0,0x52,dstVtotal);		  dstVtotal = dstVtotal + 3; WriteWordIIC_HW(0xB0,0x54,dstVtotal);		   WriteWordIIC_HW(0xB0,0x56,dstHtotal);		  dstHtotal = dstHtotal - 60 - 60; WriteWordIIC_HW(0xB0,0x5a,dstHtotal);		  dstHtotal = dstHtotal + 60; WriteWordIIC_HW(0xB0,0x5c,dstHtotal);		  }  void SetDPLL(unsigned long dclk) { unsigned long temp; WriteIIC_HW(0xB0,0xff,0x01);		  WriteIIC_HW(0xB0,0xf0,0x00);  if(dclk > 100000000){ WriteIIC_HW(0xB0,0xf1,0x10); temp = ((float)dclk * 16384) / 1500000; } else if(dclk > 50000000){ WriteIIC_HW(0xB0,0xf1,0x11); temp = ((float)dclk * 32768) / 1500000; } else if(dclk > 25000000){ WriteIIC_HW(0xB0,0xf1,0x12); temp = ((float)dclk * 65536) / 1500000; } else{ WriteIIC_HW(0xB0,0xf1,0x13); temp = ((float)dclk * 131072) / 1500000; } #line 678 "SRC\Scaler.C" /1                 #line 695 "SRC\Scaler.C" /0 WriteIIC_HW(0xB0,0xf2,(unsigned char)temp); WriteIIC_HW(0xB0,0xf3,(unsigned char)(temp >> 8)); WriteIIC_HW(0xB0,0xf4,(unsigned char)(temp >> 16)); WriteIIC_HW(0xB0,0xf0,0x01); WriteIIC_HW(0xB0,0xff,0x00); }  void SetHP(void) {  WriteWordIIC_HW(0xB0,0x18,HP_Start); if((flag3 & 0x04) != 0x00){ printf("HP_Start = %d\r\n",HP_Start); } }  void SetVP(void) {  if((flag3 & 0x40) != 0){ WriteWordIIC_HW(0xB0,0x14,VP_Start | 0x6000); } else{ WriteWordIIC_HW(0xB0,0x14,VP_Start); } if((flag3 & 0x04) != 0x00){ printf("VP_Start = %d\r\n",VP_Start); } }  void SetSharpness(void) { WriteIIC_HW(0xB0,0x70,Sharpness); if((flag3 & 0x04) != 0x00){ printf("Sharpness = %d\r\n",(unsigned short)Sharpness); } }  void SetBrightness(void) { unsigned char value; value = 78 + Brightness; if(value > 0x7f) value &= 0x7f; else value |= 0x80; WriteIIC_HW(0xB0,0x6c,value); WriteIIC_HW(0xB0,0x6d,value); WriteIIC_HW(0xB0,0x6e,value); if((flag3 & 0x04) != 0x00){ printf("Brightness of ASIC = %x\r\n",(unsigned short)value); } }  void SetInverter(void) { unsigned char value; value = Inverter << 1; PWM_REG[15] = value; if((flag3 & 0x04) != 0x00){ printf("Inverter = %x\r\n",(unsigned short)value); } }  void ForceToBackground(unsigned char color) { if(((flag1 & 0x02) == 0)||((flag3 & 0x01) != 0)){ flag1 |= 0x02;		  if((flag3 & 0x04) != 0x00){ printf("Force To Background %x\r\n",(unsigned short)color); } color <<= 2; color |= 0x02; WriteIIC_HW(0xB0,0x4d,color); } }  void SetDisplayNormal(void) { flag1 &= ~0x20; flag1 &= ~0x02; WriteIIC_HW(0xB0,0x4d,0x00);		       MuteTimer = 128; if((flag3 & 0x04) != 0x00){ printf("Set Display Normal\r\n"); } }  void PowerSaving(void) {  OSD_Control &= ~0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); AUDIO_MUTE(); ForceToBackground(0); BackLightOff(); Sleep(250); ScalerPowerDown(); AMP_STBY(); if((flag3 & 0x04) != 0x00){ printf("Power Saving\r\n"); } }  void ScalerPowerDown(void) {  if(0 > 1){ WriteIIC_HW(0xB0,0xff,0x01); WriteIIC_HW(0xB0,0x08,0x00); WriteIIC_HW(0xB0,0xff,0x00); }    WriteIIC_HW(0xB0,0x6f,0x00); WriteIIC_HW(0xB0,0xE8,0x00); WriteIIC_HW(0xB0,0xfe,0x00); WriteIIC_HW(0xB0,0xfa,0x00); WriteIIC_HW(0xB0,0xfb,0x00); WriteIIC_HW(0xB0,0x00,0x37); WriteIIC_HW(0xB0,0x00,0x07); WriteIIC_HW(0xB0,0x4c,0x00); Sleep(1); PanelPowerOff();		  Timer4 = 100;		  }  void ScalerPowerUp(void) { if((ReadIIC_HW(0xB0,0x00) & 0x01) != 0){ LED_GrnOn(); LED_RedOff(); AMP_On();  if((PortC & 0x80) == 0x00){ #line 891 "SRC\Scaler.C" /1  #line 893 "SRC\Scaler.C" /0 while(Timer4 != 0){}; PanelPowerOn(); Sleep(1); } if(0 == 0){ WriteIIC_HW(0xB0,0xfa,0x40); WriteIIC_HW(0xB0,0xfb,0xc3); WriteIIC_HW(0xB0,0xfe,0x02); } else if(0 == 1){ WriteIIC_HW(0xB0,0xfa,0x00); WriteIIC_HW(0xB0,0xfb,0x00); WriteIIC_HW(0xB0,0xfe,0xc0); } else if(0 == 2){ WriteIIC_HW(0xB0,0xfa,0xc0); WriteIIC_HW(0xB0,0xfb,0x00); WriteIIC_HW(0xB0,0xfe,0xc1); WriteIIC_HW(0xB0,0xff,0x01); WriteIIC_HW(0xB0,0x08,0x10); WriteIIC_HW(0xB0,0xff,0x00); } else{ WriteIIC_HW(0xB0,0xfa,0x00); WriteIIC_HW(0xB0,0xfb,0x00); WriteIIC_HW(0xB0,0xfe,0xc1); WriteIIC_HW(0xB0,0xff,0x01); WriteIIC_HW(0xB0,0x08,0x10); WriteIIC_HW(0xB0,0xff,0x00); } WriteIIC_HW(0xB0,0xe8,0xc0); WriteIIC_HW(0xB0,0x6f,0x0f);    WriteIIC_HW(0xB0,0x4c,(0x68 | (0x00 & 0x04) | (0xff & 0x02) | (0x00 & 0x01))); WriteIIC_HW(0xB0,0x00,0x30); SetBrightness(); sRGB();  } PoSvTimer = 500; flag1 &= ~0x08; H_SYNC_Temp = 0xffff; V_SYNC_Temp = 0xffff; if((flag3 & 0x04) != 0x00){ printf("WakeUp\r\n"); } }  void LoadADC_Gain(void) { WriteIIC_HW(0xB0,0x0f,Read24C16(0xfa)); WriteIIC_HW(0xB0,0x10,Read24C16(0xfb)); WriteIIC_HW(0xB0,0x11,Read24C16(0xfc)); R_ADC = Read24C16(0xfd); WriteIIC_HW(0xB0,0x02,R_ADC); G_ADC = Read24C16(0xfe); WriteIIC_HW(0xB0,0x04,G_ADC); B_ADC = Read24C16(0xff); WriteIIC_HW(0xB0,0x06,B_ADC); }  void SetVolume(void) { unsigned char value; value = (Volume << 1) + 55; PWM_REG[1] = value; if(Volume == 0){ AUDIO_MUTE(); } else{ AUDIO_On(); } if((flag3 & 0x04) != 0x00){ printf("Volume = %x\r\n",(unsigned short)value); } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -