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

📄 frame_sync.i

📁 液晶显示器程序代码
💻 I
📖 第 1 页 / 共 3 页
字号:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            #line 1229 "HEADER\VDC_CFG.H" /0  extern unsigned char code V_NOWORK[]; extern unsigned char code V_DISABLE[]; extern unsigned char code V_ENABLE[];  extern unsigned char code AV_DETECT[]; extern unsigned char code SV_DETECT[];  extern unsigned char code YUV_DETECT[];  extern unsigned char code AV_60_0[]; extern unsigned char code AV_60_1[]; extern unsigned char code AV_60_2[]; extern unsigned char code AV_60_3[]; extern unsigned char code AV_60_4[]; extern unsigned char code AV_50_0[]; extern unsigned char code AV_50_1[]; extern unsigned char code AV_50_2[]; extern unsigned char code AV_50_3[]; extern unsigned char code AV_50_4[]; extern unsigned char code AV_SECAM[];  extern unsigned char code SV_60_0[]; extern unsigned char code SV_60_1[]; extern unsigned char code SV_60_2[]; extern unsigned char code SV_60_3[]; extern unsigned char code SV_60_4[]; extern unsigned char code SV_50_0[]; extern unsigned char code SV_50_1[]; extern unsigned char code SV_50_2[]; extern unsigned char code SV_50_3[]; extern unsigned char code SV_50_4[]; extern unsigned char code SV_SECAM[];  extern unsigned char code VIDEO_ALL[]; extern unsigned char code VIDEO_YUV[]; extern unsigned char code VIDEO_60[]; extern unsigned char code VIDEO_50[];  extern unsigned char code TV_SOURCE_SEL[]; extern unsigned char code TV_SCAN_GAIN[]; extern unsigned char code TV_DISP_GAIN[];  #line 120 "Header\Config.h" /0    #line 124 "Header\Config.h" /1                                                                                                                                                                                                                                                                                                                       #line 435 "Header\Config.h" /0  extern unsigned int code CAP_WIN[][5]; extern unsigned int code ADC_SD_SET[][3];  extern unsigned char code VGA_INI_SS[]; extern unsigned char code VGA_INI_CS[]; extern unsigned char code VGA_INI_SOG[]; extern unsigned char code VIDEO_INI[]; extern unsigned char code DVI_INI[]; extern unsigned char code VGA_SET_SS[]; extern unsigned char code VGA_SET_CS[]; extern unsigned char code VGA_SET_SOG[]; extern unsigned char code LVDS_POWERUP[]; extern unsigned char code LVDS_POWERDOWN[]; extern unsigned char code Palette_Open[]; extern unsigned char code Palette_Close[];  extern unsigned char code Palette_1[]; extern unsigned char code Palette_2[]; extern unsigned char code Palette_3[]; extern unsigned char code Palette_4[]; extern unsigned char code Palette_5[]; extern unsigned char code Palette_6[]; extern unsigned char code Palette_7[]; extern unsigned char code DCLK_OFFSET[16];  #line 7 "Code\Frame_Sync.c" /0   #line 1 "Header\Lcd_main.h" /0  #line 1 "HEADER\Timer.h" /0  #line 1 "HEADER\Main_def.h" /0  #line 1 "HEADER\CHAR_DEF.H" /0                                                                                                                         #line 1 "HEADER\Main_def.h" /0   #line 1 "HEADER\MODE_DEF.H" /0                                                                              #line 2 "HEADER\Main_def.h" /0   #line 1 "HEADER\RTD_DEF.H" /0                                                                                                                                                                                                                                 #line 3 "HEADER\Main_def.h" /0   #line 1 "HEADER\CODE_DEF.H" /0                                   #line 4 "HEADER\Main_def.h" /0                                                                                                                                     #line 144 "HEADER\Main_def.h" /1           #line 155 "HEADER\Main_def.h" /0  #line 157 "HEADER\Main_def.h" /1   #line 159 "HEADER\Main_def.h" /0    #line 163 "HEADER\Main_def.h" /1   #line 165 "HEADER\Main_def.h" /0                                                                                                         #line 270 "HEADER\Main_def.h" /1   #line 272 "HEADER\Main_def.h" /0 #line 273 "HEADER\Main_def.h" /1   #line 275 "HEADER\Main_def.h" /0 #line 276 "HEADER\Main_def.h" /1   #line 278 "HEADER\Main_def.h" /0 #line 279 "HEADER\Main_def.h" /1   #line 281 "HEADER\Main_def.h" /0                                       #line 1 "HEADER\Timer.h" /0        #line 9 "HEADER\Timer.h" /1      #line 13 "HEADER\Timer.h" /0       #line 20 "HEADER\Timer.h" /1       #line 25 "HEADER\Timer.h" /0          #line 35 "HEADER\Timer.h" /1         #line 41 "HEADER\Timer.h" /0  #line 43 "HEADER\Timer.h" /1        #line 68 "HEADER\Timer.h" /0  extern bit bNotify_Timer0_Int; extern bit bNotify_Timer1_Int; extern void Delay_Xms(unsigned char x);      #line 1 "Header\Lcd_main.h" /0   #line 1 "HEADER\Power_Ctrl.h" /0           #line 12 "HEADER\Power_Ctrl.h" /1        #line 20 "HEADER\Power_Ctrl.h" /0  extern bit bPower_Status;      extern bit bPanel_Status;  extern void PowerDown_ADC(void); extern void PowerUp_ADC(void); extern void PowerDown_VDC(void); extern void PowerUp_VDC(void); extern void PowerDown_LVDS(void); extern void PowerUp_LVDS(void); extern void PowerDown_TMDS(void); extern void PowerUp_TMDS(void);  extern void Set_Panel(unsigned char status); extern bit Power_Control(unsigned char Notify);    #line 2 "Header\Lcd_main.h" /0   #line 1 "HEADER\Mode_Detect.h" /0 #line 2 "HEADER\Mode_Detect.h" /1                                                        #line 64 "HEADER\Mode_Detect.h" /0  extern bit bVpole_Curr; extern bit bHpole_Curr; extern bit bStable;      extern bit bOverSpec;  extern unsigned int idata          usHsync; extern unsigned int idata          usStdHS; extern unsigned int idata          usVsync; extern unsigned char   idata   ucMode_Curr; extern unsigned char   idata   ucMode_Found; extern unsigned char   idata   ucMode_Times; extern unsigned char   idata   ucAV_Mode; extern unsigned char   idata   ucInputSrc; extern unsigned char   idata   ucRefresh; extern unsigned char   idata   ucModeCnt; extern unsigned char   idata    ucSync_Type; extern void Mode_Detector(void); extern void Measure_Mode(void); extern void Measure_Source(unsigned char SOURCE); extern void Input_Mode_Detector(void); extern unsigned char   idata   ucPE_Level; extern unsigned char   idata   ucCE_Value;  extern void New_Mode_Auto(void);		  extern unsigned int    idata   ucfrist ;			   #line 3 "Header\Lcd_main.h" /0                       #line 32 "Header\Lcd_main.h" /1                                                      #line 86 "Header\Lcd_main.h" /0   extern bit bReload;  #line 91 "Header\Lcd_main.h" /1   #line 94 "Header\Lcd_main.h" /0  extern unsigned int     idata   usOSD_Timer; extern unsigned int     idata   usTaskCnt; extern unsigned char    idata   ucID_Code;     extern void ISP_Check_Sum(void); extern void Set_Task(unsigned char state);   #line 8 "Code\Frame_Sync.c" /0   #line 1 "Header\LCD_OSD.h" /0                       #line 24 "Header\LCD_OSD.h" /1                                                                  #line 90 "Header\LCD_OSD.h" /0  extern unsigned char    idata   ucOSD_Page_Index; extern unsigned char    idata   ucOSD_Item_Index0; extern unsigned char    idata   ucOSD_Item_Index1; extern unsigned char    idata   ucOSD_Item_Index2;  extern unsigned char   idata   ucOSD_Pre_Page_Index; #line 98 "Header\LCD_OSD.h" /1    #line 102 "Header\LCD_OSD.h" /0   extern void OSD_Proc(unsigned char action);   extern void OSD_Window(unsigned char win_no, unsigned int row_start, unsigned int row_end, unsigned int col_start, unsigned int col_end, unsigned char width, unsigned char height, unsigned char color, unsigned char color_sb, unsigned char gradient, unsigned char gra_level,unsigned char attr);   extern void OSD_Line(unsigned char row, unsigned char col, unsigned char length, unsigned char value, unsigned char indicate);  extern void Get_OSD_Margin(void);  extern void OSD_Opening(void); extern void OSD_Ending(void);  extern void Show_Note(void); extern void Show_Hint(void); extern void OSD_Clear(unsigned char row_start, unsigned char height, unsigned char col_start, unsigned char width);  extern void OSD_Show_Check(void); extern void rgb_OSD_Slider(unsigned char row, unsigned char col, unsigned char length, unsigned char value, unsigned char range, unsigned char color, unsigned char color_slider);    extern void OSD_Fact_Line(unsigned char row, unsigned char col, unsigned char length, unsigned char value, unsigned char indicate);  extern void OSD_Fact_Clear(unsigned char row_start, unsigned char height, unsigned char col_start, unsigned char width);  extern void OSD_Position(unsigned char para);				  extern void Value_Adjust(unsigned char *Var, unsigned char Key, unsigned char VMax, unsigned char VMin);      #line 9 "Code\Frame_Sync.c" /0        bit Frame_Sync_Detector(void) { if (bPower_Status && bStable && 0 != ucMode_Curr && 255 != ucMode_Curr) { if (bFrameSync) { RTDRead(0x1F, 1, 1); ucStatus    |= (Data[0] >> 6);  if(Data[0]) RTDSetByte(0x1F,0x00);  if (Data[0] & 0xc0) { ucSyncErrorCnt  += 1; #line 32 "Code\Frame_Sync.c" /1  #line 34 "Code\Frame_Sync.c" /0 }               }  if (1 >= ucSyncErrorCnt) { RTDRead(0x01, 1, 1); ucStatus    |= (Data[0] & 0xfc);   if(Data[0]) RTDSetByte(0x01,0x00);    if (Data[0] & 0x60)     ucSyncErrorCnt  += (1 + 1);  if (0 == (stGUD1.INPUT_SOURCE & 0x07)) { if (Data[0] & 0x80) { ucSyncErrorCnt  += 1; #line 68 "Code\Frame_Sync.c" /1  #line 70 "Code\Frame_Sync.c" /0 } else {    RTDSetBit(0x3D, 0x7f, 0x20);   Delay_Xms(1); RTDRead(0x3D, 1, 1); ucPE_Max = Data[0] & 0x1f; if((ucPE_Max > 0x10) && (ucPE_Level == 0)) { ucPE_Level = 1; Adjust_I_Code(); if((ucI_Code & 0x80) == 0x80) RTDSetBit(0xCA,0xdf,0x20);    else RTDSetBit(0xCA,0xdf,0x00);     ucI_Code = ucI_Code & 0x7f; RTDSetByte(0xC9,0x1c | ((ucI_Code & 0x07) << 5)); RTDSetBit(0xCA,0xfc,0x04 | ((ucI_Code & 0x18) >> 3));  RTDSetBit(0x3D, 0xdf, 0x00);  RTDSetByte(0x3D,0x40);   ucPE_Max = 0; }   } } }  if (1 < ucSyncErrorCnt) { Reset_Mode();  Set_Task(2);        bNotify_Timer0_Int  = 0;  return 1;  }  if (bNotify_Timer0_Int && 2 == ucModeCnt) { if (ucSyncErrorCnt)     ucSyncErrorCnt  -= 1;  } } return 0; }     void AbortSync(void) { Data[0] = 5; Data[1] = 0; Data[2] = 0x22; Data[3] = (unsigned char)usDH_Total; Data[4] = (unsigned char)(usDH_Total >> 8); Data[5] = 0; RTDWrite(Data);  RTDSetBit(0x2E, 0x07, 0x00); }  unsigned char TestSync(unsigned int offset)       {  RTDSetByte(0x9a,(unsigned char)offset); RTDSetBit(0x9b,0xf0,(unsigned char)((offset >> 8) & 0x0f) | 0x20);    Wait_For_Event(0x08);              RTDSetByte(0x01,0x00);  Wait_For_Event(0x08);               Wait_For_Event(0x08);                RTDRead(0x01, 1, 1);          if(Data[0]) RTDSetByte(0x01,0x00);   if (Data[0] & 0x60)   { AbortSync(); return 1; }  Data[0] &= 0x03;  return 0;     }         unsigned char Frame_Sync(void) { unsigned int idata usBuffer,usDelta; unsigned char idata  ucFine,ucTemp=0;  #line 198 "Code\Frame_Sync.c" /1  #line 200 "Code\Frame_Sync.c" /0    RTDRead(0x9a , 2, 0); Data[2] = Data[1] & 0x0f; Data[3] = Data[0]; usBuffer = ((unsigned int*)Data)[1];   usDelta = usBuffer;   if(((stGUD1.INPUT_SOURCE & 0x07) == 0) || ((stGUD1.INPUT_SOURCE & 0x07) == 1)) {   while(usBuffer < (1228 + 14 * 32))  { RTDRead(0xD1,2,0); RTDSetByte(0xD1,Data[0]+1); RTDSetByte(0xD2,Data[1]);       usBuffer = (unsigned int)((unsigned long)(32768 + (unsigned long)(Data[0] + 2) * usBuffer)/(unsigned long)(Data[0] + 3));  usDelta = usBuffer;  }    usDelta -= 128;   }  usBuffer = usDelta;   for(ucFine =0;ucFine < 14;ucFine++) { if (TestSync(usDelta))    return 2;  if(Data[0] & 0x03) { usDelta = (Data[0] & 0x02) ? usDelta - 32 : usDelta + 32; ucTemp += 1; } else if((Data[0] & 0x03) == 0) break; }  if(Data[0] & 0x03) return 1;      else if(usDelta < usBuffer)   {  if(TestSync(usDelta - 4))    return 2;  if(Data[0] & 0x03) TestSync(usDelta); else usDelta -= 2;  } else  {  if(TestSync(usDelta + 4))    return 2;  if(Data[0] & 0x03) TestSync(usDelta); else  usDelta += 2; }    #line 298 "Code\Frame_Sync.c" /1                                                                                                                       #line 417 "Code\Frame_Sync.c" /0   RTDSetBit(0x99,0x0f,(6 << 4)); if(TestSync(usDelta + DCLK_OFFSET[6]))     return 2;  if(Data[0] & 0x03) { if(TestSync((Data[0] & 0x02) ? (usDelta + DCLK_OFFSET[6] - 1) : (usDelta + DCLK_OFFSET[6] + 1)))     return 2; else  { if(Data[0] & 0x03) return 1;   else return 0; }  } #line 438 "Code\Frame_Sync.c" /1  #line 440 "Code\Frame_Sync.c" /0 return 0;   }     void Adjust_I_Code(void) {  ((unsigned int*)Data)[0] = 24576/usHsync;      ucI_Code = 14; Data[2] = ((unsigned long)ucCE_Value * 50737400 / (unsigned long)((unsigned int*)Data)[0]) >> 20; Data[3] = (4 == 0) ? (ucPE_Level ? (185 - ucP_Corr) : ((ucP_Corr >> 2) + 10)) :   4;  while(1) {  if(Data[2] > Data[3]) { Data[2] = Data[2] >> 1; ucI_Code -= 1;  if(Data[2] <= Data[3]) break; } else { if((Data[2] << 1) > Data[3]) break; else { Data[2] = Data[2] << 1; ucI_Code += 1; } } }    if((unsigned char)((unsigned int)Data[2]*3/2) <= Data[3])   {	          ucI_Code |= 0x80;  } else {  }   }

⌨️ 快捷键说明

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