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

📄 iic.i

📁 NOVATEK公司的LCD_CONTROLLER源代码 液晶显示器驱动板源代码NT68521
💻 I
📖 第 1 页 / 共 2 页
字号:
 extern code unsigned char ColorTab[];  void BrightnessUp(void); void BrightnessDown(void); void LoadModeIndependentSettings(void); void LoadModeDependentSettings(void); void SaveModeDependentSettings(void); void ContrastUp(void); void ContrastDown(void); void ClockUp(void); void ClockDown(void); void PhaseUp(void); void PhaseDown(void); void HP_Up(void); void HP_Down(void); void VP_Up(void); void VP_Down(void); void Recall(void); void OSD_X_Up(void); void OSD_X_Down(void); void OSD_Y_Up(void); void OSD_Y_Down(void); void SharpnessUp(void); void SharpnessDown(void); void RGB_Up(void); void RGB_Down(void); void OSD_TimerUp(void); void OSD_TimerDown(void); void ColorTempUp(void); void ColorTempDown(void); void LanguageUp(void); void LanguageDown(void); void ResetEEPROM(void); void SaturationUp(void); void SaturationDown(void); void TintUp(void); void TintDown(void); void SharpnessDown(void); void CH_SystemUp(void); void CH_SystemDown(void); void InverterUp(void); void InverterDown(void); void SourceSelect(void);  #line 9 "SRC\IIC.C" /0   #line 1 "SRC\SCALER.H" /0        extern code unsigned char TCON_Tab[]; extern code unsigned short H_ActiveTab[]; extern code unsigned short V_ActiveTab[]; extern code unsigned char PhaseTable[];  void InitScaler(void); void TCONInit(void); void UpdatePresetData(void); void SetADC_Phase(void); void SetADC_PLL(void); void SetScaler(void); void SetScalerAV(void); void ForceToBackground(unsigned char color); void SetDisplayNormal(void); void PowerSaving(void); void ScalerPowerDown(void); void ScalerPowerUp(void); void SetHP(void); void SetVP(void); void SetDPLL(unsigned long dclk); void SetSharpness(void); void SetContrast(void); void SetBrightness(void); void SetInverter(void); void LoadADC_Gain(void); void SetVolume(void); void SetStartDPLL(unsigned long dclk); void WritePageScaler(unsigned char addr1,unsigned char addr2,unsigned char *p); void SetScalerAV(void);  #line 10 "SRC\IIC.C" /0   #line 1 "SRC\SAA7114.H" /0      void SAA7114Init(void); void WritePageSAA7114(unsigned char addr1,unsigned char addr2); void CheckColorSystem(void); void CheckVideo(void); void SetVideoBrightness(void); void SetVideoContrast(void); void SetVideoSaturation(void); void SetVideoTint(void); void SetVideoSharpness(void); void SetAV_System(void);  #line 11 "SRC\IIC.C" /0   unsigned char Read24C16(unsigned short addr16) { unsigned char ch; unsigned short device,addr; addr = addr16 & 0x0ff; device = (addr16 >> 7) & 0x0e; device |= 0xa0; ch = ReadIIC_HW(device,addr); return ch; }  void InitEEPROM(void) { unsigned short addr; for(addr=0; 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(0xe8,0x55); Write24C16(0xe9,0xaa); Write24C16(0xea,0x00); Write24C16(0xeb,0x12); }  void Write24C16(unsigned short k,unsigned char ch) { unsigned char device,addr; addr = (unsigned char)k; device = (unsigned char)((k>>7)&0x0e); device |= 0xa0; WriteIIC_HW(device,addr,ch); Sleep(12); }  void WritePage24C16(unsigned short addr1,unsigned short addr2,unsigned char *p) { unsigned char i,ch; i = (unsigned char)((addr1 >>7 ) & 0x0e); i |= 0xa0;   INTIIC1_FLG = 0xff; IIC1_DATA = i; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00;  MasterSendByte(addr1);  for(i=0; i<16; i++){ ch = p[addr2 + i]; MasterSendByte(ch); }  WaitTx();  IIC1_CLK = 0xA0|IIC_BaudRate;  WaitStop(); Sleep(12); }  void WriteWordIIC_HW(unsigned char device,unsigned char addr,unsigned short value) {   INTIIC1_FLG = 0xff; IIC1_DATA = device; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00;  MasterSendByte(addr);  MasterSendByte((unsigned char)value); MasterSendByte((unsigned char)(value >> 8));  WaitTx();  IIC1_CLK = 0xA0|IIC_BaudRate;  WaitStop(); }  void LoadDDCData(unsigned char ddcsw) { unsigned char *p,i; unsigned short device,addr; DDC_CTRL = 0; p = &DDCPtr; if(ddcsw == 0){  } else if(ddcsw == 1){	  flag2 |= 0x80; addr = (unsigned char)0x300; device = (unsigned char)(0x300 >> 7) & 0x0e; if((flag3 & 0x04) != 0x00) printf("\n Load Analog EDID\r\n"); } else{		  flag2 &= ~0x80; addr = (unsigned char)0x380; device = (unsigned char)(0x380 >> 7) & 0x0e; if((flag3 & 0x04) != 0x00) printf("Load Digital EDID\r\n"); } device |= 0xa0;   INTIIC1_FLG = 0xff; IIC1_DATA = device; IIC1_CLK = 0x20 | IIC_BaudRate;  MasterSendByte(addr);  WaitTx();  IIC1_CLK = 0xA0|IIC_BaudRate;   WaitStop();  IIC1_DATA = device+1; IIC1_CLK = 0x60 | IIC_BaudRate; WaitTx();  for(i=128; i>0; i--){ *p = MasterReadByte(i); p++; }     WaitStop(); DDC_CTRL = (0x80 |0x40 | 0x01 | 0x02);    DDC_CTRL = (0x80 | 0x10); }  void SaveDDCData(unsigned char ddcsw) { unsigned char *p,i; LED_GrnOff(); LED_RedOn(); DDC_CTRL = (0x80 | 0x10 | 0x01);	 Timer3 = 50; while(Timer3 != 0){ if((INTIIC0_FLG & 0x01) != 0){ INTIIC0_FLG = 0x01; Timer3 = 50; } if((DDC_REG & 0x01) != 0){		  DDC_CTRL = (0x80 | 0x10 | 0x01);	 Timer3 = 50; } } p = &DDCPtr; if(ddcsw == 0){  } else if(ddcsw == 1){	  for(i=0; i<128; i=i+16){ do{ DDC_REG = 0x80; WritePage24C16(0x300+i,i,p); if((DDC_REG & 0x01) != 0){		  return; } }while((DDC_REG & 0x80) == 0);		  } } else{					  for(i=0; i<128; i=i+16){ do{ DDC_REG = 0x80; WritePage24C16(0x380+i,i,p); if((DDC_REG & 0x01) != 0){		  return; } }while((DDC_REG & 0x80) == 0);		  } } LED_GrnOn(); LED_RedOff(); } void WriteIIC_HW(unsigned char device,unsigned char addr,unsigned char ch) {   INTIIC1_FLG = 0xff; IIC1_DATA = device; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00;  MasterSendByte(addr);  MasterSendByte(ch);  WaitTx();  IIC1_CLK = 0xA0|IIC_BaudRate;  WaitStop(); }  void MasterSendByte(unsigned char i) { Timer1 = 100; while((INTIIC1_FLG & 0x08) == 0){ if(Timer1 == 0){ if((flag3 & 0x04) != 0x00){ printf("ACK Fail2\r\n"); } EA = 0; break; } }  INTIIC1_FLG = 0x08; IIC1_DATA = i; }  void WaitTx(void) { Timer1 = 100; while((INTIIC1_FLG & 0x08) == 0){ if(Timer1 == 0){ if((flag3 & 0x04) != 0x00){ printf("ACK Fail3\r\n"); } EA = 0; break; } }  INTIIC1_FLG = 0x08; }  void WriteIICV_HW(unsigned char device,unsigned char addr,unsigned char ch) {   INTIIC1_FLG = 0xff; IIC1_DATA = device; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00;  MasterSendByte(addr);  MasterSendByteV(ch);  WaitTx();  IIC1_CLK = 0xA0|IIC_BaudRate;  WaitStop(); }  void MasterSendByteV(unsigned char i) { Timer1 = 100; while((INTIIC1_FLG & 0x08) == 0){ if(Timer1 == 0){ if((flag3 & 0x04) != 0x00){ printf("ACK Fail6\r\n"); } EA = 0; break; } }  INTHV_FLG |= 0x40; Timer1 = 40; while(Timer1 != 0){ if((INTHV_FLG & 0x40) != 0) break; } INTIIC1_FLG = 0x08; IIC1_DATA = i; if(Timer1 == 0){ BackLightOff(); flag2 |= 0x01; H_SYNC_Temp = 0xffff; V_SYNC_Temp = 0xffff; if((flag3 & 0x04) != 0x00){ printf("Mode change\r\n"); } } } #line 340 "SRC\IIC.C" /1                                             #line 385 "SRC\IIC.C" /0 unsigned short ReadWordIIC_HW(unsigned char device,unsigned char addr) { unsigned char ch; unsigned short value;   INTIIC1_FLG = 0xff; IIC1_DATA = device; IIC1_CLK = 0x20 | IIC_BaudRate;  MasterSendByte(addr);  WaitTx();  IIC1_CLK = 0xA0|IIC_BaudRate;   WaitStop();  IIC1_DATA = device+1; IIC1_CLK = 0x60 | IIC_BaudRate; WaitTx();   ch = MasterReadByte(2);  value = MasterReadByte(1); value <<= 8; value |= ch;     WaitStop(); return(value); }  unsigned char ReadIIC_HW(unsigned char device,unsigned char addr) { unsigned char value;   INTIIC1_FLG = 0xff; IIC1_DATA = device; IIC1_CLK = 0x20 | IIC_BaudRate;  MasterSendByte(addr);  WaitTx();  IIC1_CLK = 0xA0|IIC_BaudRate;   WaitStop();  IIC1_DATA = device+1; IIC1_CLK = 0x60 | IIC_BaudRate; WaitTx();   value = MasterReadByte(1);     WaitStop(); return(value); }  unsigned char MasterReadByte(unsigned char k) { unsigned char i; Timer1 = 100; while((INTIIC1_FLG & 0x04) == 0){ if(Timer1 == 0){ if((flag3 & 0x04) != 0x00){ printf("ACK Fail4\r\n"); } EA = 0; break; } } if(k == 1){ IIC1_CON = 0x02; } else{ IIC1_CON = 0x00; } INTIIC1_FLG = 0x04; i = IIC1_DATA; return i; }  void WaitStop(void) { Timer1 = 100; while((IIC1_CON & 0x08) == 0){ if(Timer1 == 0){ if((flag3 & 0x04) != 0x00){ printf("Stop Fail\r\n"); } EA = 0; break; } } IIC1_CON = 0x00; }  void CheckDevice(void) { DeviceFlag = 0;  if((flag3 & 0x04) != 0x00){ printf("Video Decoder "); } VideoEnable(); Sleep(10); if(TestIIC_HW(0x42) == 0) DeviceFlag &= ~0x01; else DeviceFlag |= 0x01; VideoDisable(); }  unsigned char TestIIC_HW(unsigned char device) { unsigned char value;   INTIIC1_FLG = 0xff; IIC1_DATA = device + 1; IIC1_CLK = 0x60 | IIC_BaudRate;  Timer1 = 100; while((INTIIC1_FLG & 0x08) == 0){ if(Timer1 == 0){ break; } }  INTIIC1_FLG = 0x08;  IIC1_CON = 0x02; Timer1 = 100; while((INTIIC1_FLG & 0x04) == 0){ if(Timer1 == 0) break; } if(Timer1 == 0){ IIC1_CLK = 0xA0|IIC_BaudRate; IIC1_CON = 0x00; value = 0; if((flag3 & 0x04) != 0x00){ printf("not install\r\n"); } } else{ value = IIC1_DATA; value |= 0x02;     WaitStop(); if((flag3 & 0x04) != 0x00){ printf("install\r\n"); } } return(value); }  

⌨️ 快捷键说明

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