📄 osd.i
字号:
#line 1442 "SRC\PANEL.H" /0 #line 1444 "SRC\PANEL.H" /1 #line 1507 "SRC\PANEL.H" /0 #line 1509 "SRC\PANEL.H" /1 #line 1566 "SRC\PANEL.H" /0 #line 1568 "SRC\PANEL.H" /1 #line 1631 "SRC\PANEL.H" /0 #line 1633 "SRC\PANEL.H" /1 #line 1695 "SRC\PANEL.H" /0 #line 1697 "SRC\PANEL.H" /1 #line 1760 "SRC\PANEL.H" /0 #line 1827 "SRC\PANEL.H" /1 #line 1890 "SRC\PANEL.H" /0 #line 9 "SRC\OSD.C" /0 #line 1 "SRC\F63REG.H" /0 extern xdata unsigned char PortA; extern xdata unsigned char PortB; extern xdata unsigned char PortC; extern xdata unsigned char PortD; extern xdata unsigned char CLRWDT; extern xdata unsigned char ADC_CON; extern xdata unsigned char ADC_REG[4]; extern xdata unsigned char ENPWM_LB; extern xdata unsigned char ENPWM_HB; extern xdata unsigned char PWM_REG[16]; extern xdata unsigned char DDC_CTRL; extern xdata unsigned char DDC_REG; extern xdata unsigned char DDC_ADDR; extern xdata unsigned char INTIIC0_FLG; extern xdata unsigned char INTIIC0_EN; extern xdata unsigned char IIC0_ADDR; extern xdata unsigned char IIC0_DATA; extern xdata unsigned char IIC0_CON; extern xdata unsigned char IIC0_CLK; extern xdata unsigned char INTIIC1_FLG; extern xdata unsigned char INTIIC1_EN; extern xdata unsigned char IIC1_ADDR; extern xdata unsigned char IIC1_DATA; extern xdata unsigned char IIC1_CON; extern xdata unsigned char IIC1_CLK; extern xdata unsigned char INT_SRC; extern xdata unsigned char INTEXT_FLG; extern xdata unsigned char INTEXT_EN; extern xdata unsigned char INTHV_FLG; extern xdata unsigned char INTHV_EN; extern xdata unsigned char SYNC_REG; extern xdata unsigned char HVO_REG; extern xdata unsigned char HVI_REG; extern xdata unsigned char HPW_REG; extern xdata unsigned char HFLT_REG; extern xdata unsigned char CLMP_REG; extern xdata unsigned char HVCNT_CTRL; extern xdata unsigned char HCNT_LB; extern xdata unsigned char HCNT_HB; extern xdata unsigned char VCNT_LB; extern xdata unsigned char VCNT_HB; extern xdata unsigned char DCNT_LB; extern xdata unsigned char DCNT_HB; extern xdata unsigned char LCNT_LB; extern xdata unsigned char LCNT_HB; extern xdata unsigned char MUTE_CTRL; extern xdata unsigned char ISP_REG; extern xdata unsigned char FLASH_BUF; extern xdata unsigned char RDPA_REG; extern xdata unsigned char RDPB_REG; extern xdata unsigned char RDPC_REG; extern xdata unsigned char RDPD_REG; extern xdata unsigned char S3D_REG; extern xdata unsigned char IUSB2_FLG; extern xdata unsigned char IUSB2_EN; extern xdata unsigned char IUSB1_FLG; extern xdata unsigned char IUSB1_EN; extern xdata unsigned char MODE_FG; extern xdata unsigned char USB_ADR; extern xdata unsigned char USB_CON; extern xdata unsigned char TXDAT0; extern xdata unsigned char TXCNT0; extern xdata unsigned char TXFLG0; extern xdata unsigned char RXDAT0; extern xdata unsigned char RXCNT0; extern xdata unsigned char RXFLG0; extern xdata unsigned char TXDAT1; extern xdata unsigned char TXCNT1; extern xdata unsigned char TXFLG1; extern xdata unsigned char TXFLG2; extern xdata unsigned char ISRC_SW; extern xdata unsigned char DDCPtr; #line 10 "SRC\OSD.C" /0 #line 1 "SRC\MCU.H" /0 extern code unsigned char KeyTab[]; void InitMCU(void); void Sleep(unsigned short time); void CheckKey(void); void LED_GrnOn(void); void LED_GrnOff(void); void LED_RedOn(void); void LED_RedOff(void); void BackLightOn(void); void BackLightOff(void); void PanelPowerOff(void); void PanelPowerOn(void); void ResetOff(void); void ResetOn(void); void AUDIO_MUTE(void); void AUDIO_On(void); void DVI_On(void); void DIV_PWND(void); void AMP_STBY(void); void AMP_On(void); void DIG_SEL(void); void DIG_Off(void); void CheckDDC2Bi(void); void ScanKeyPad(void); void WaitSetup(unsigned short time); void VideoEnable(void); void VideoDisable(void); #line 11 "SRC\OSD.C" /0 #line 1 "SRC\OSD_TAB.H" /0 extern code unsigned char OneBitFont[]; extern code unsigned char FourBitFont[]; extern code unsigned char *Tab1[]; extern code unsigned char *VideoTab1[]; #line 12 "SRC\OSD.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 13 "SRC\OSD.C" /0 code unsigned char IconPosition[]={ 1,1,1,3,1,5,1,7,1,9,1,11,1,13,4,1,4,3,4,5,4,7,4,9,4,11,4,13 }; code unsigned char MainIconColor[]={ 4,1,4,4,4,4,4,4,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1 }; code unsigned char VideoIconColor[]={ 4,1,4,4,4,4,4,4,4,4,4,1,1,1,4,4,4,4,4,4,4,4,4,4,4,1,1,1 }; code unsigned char SpaceLine23[]={ 23," " }; code unsigned char Source1[]={ 8," PC " }; code unsigned char Source2[]={ 8,"VIDEO " }; code unsigned char Source3[]={ 8,"S-VIDEO " }; code unsigned char Source4[]={ 8," TV " }; code unsigned char Source5[]={ 8,"CATV " }; code unsigned char *SourceTab[]={ Source1,Source2,Source3,Source4,Source5 }; code unsigned char ClearLine1[]={ 20," " }; code unsigned char ClearLine2[]={ 5," " }; code unsigned char ClearLine3[]={ 5,0x82,0x82,0x82,0x82,0x82 }; code unsigned char MenuItem[]={ 7,3,4,5 }; void OsdInit(void) { unsigned char i; OSD_Control = Read24C16(0xce); WriteIIC_HW(0xB0,0x95,OSD_Control); WriteIIC_HW(0xB0,0xa9,0x55); SetPosition(); ClearOSD(); for(i=2; i<5; i++){ FillLineAttr(7,i,23,(((7-1)<<8)|(12<<4))); } ClearText(); OSD_Point1 = 0; OSD_Point2 = 0; SavePointer = NotSaveSaveFlag; if(PowerStatus > 0x80){ ShowVideoMenu(); ShowVideoSubMenu(); } else{ ShowMainMenu(); ShowSubMenu(); } } void Osd4Init(void) { OSD_Control &= ~0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); WriteWordIIC_HW(0xB0,0x96,(1024 - (12 * 1 * 32)) / 2); WriteWordIIC_HW(0xB0,0x99,(768 - (18 * 1 * 5)) / 2); WriteIIC_HW(0xB0,0x98,32-1); WriteIIC_HW(0xB0,0x9b,5-1); WriteIIC_HW(0xB0,0xa4,0x00); WaitSetup(40); ClearOSD(); FillLineAttr(1,1,30,(((11-1)<<8)|(5<<4))); FillLineAttr(1,2,30,(((11-1)<<8)|(5<<4))); FillLineAttr(1,3,30,(((11-1)<<8)|(5<<4))); MoveX = (1024 - (12 * 1 * 32)) / 2 / 6; MoveY = (768 - (18 * 1 * 5)) / 2 / 6; if((flag3 & 0x04) != 0x00){ printf("OSD X = %d\r\n",(1024 - (12 * 1 * 32)) / 2); printf("OSD Y = %d\r\n",(768 - (18 * 1 * 5)) / 2); } } void Osd3Init(void) { OSD_Control &= ~0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); WriteWordIIC_HW(0xB0,0x96,(1024 - (12 * 2 * 8))); WriteWordIIC_HW(0xB0,0x99,0); WriteIIC_HW(0xB0,0x98,8-1); WriteIIC_HW(0xB0,0x9b,1-1); WriteIIC_HW(0xB0,0xa4,0x03); WaitSetup(40); ClearOSD(); if((flag3 & 0x04) != 0x00){ printf("OSD3 X = %d\r\n",(1024 - (12 * 2 * 8))); printf("OSD3 Y = %d\r\n",0); } } void LoadFont(void) { code unsigned char PaletteTab[]={ 67,0,0xd0,0x00,0x00, (unsigned char)0x0000,(unsigned char)(0x0000>>8), (unsigned char)0xf800,(unsigned char)(0xf800>>8), (unsigned char)0x07e0,(unsigned char)(0x07e0>>8), (unsigned char)0x001F,(unsigned char)(0x001F>>8), (unsigned char)0x871c,(unsigned char)(0x871c>>8), (unsigned char)0xdfff,(unsigned char)(0xdfff>>8), (unsigned char)(0xf800|0x07e0),(unsigned char)((0xf800|0x07e0)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)0x0000,(unsigned char)(0x0000>>8), (unsigned char)0x4000,(unsigned char)(0x4000>>8), (unsigned char)0x0200,(unsigned char)(0x0200>>8), (unsigned char)0x000c,(unsigned char)(0x000c>>8), (unsigned char)0x036d,(unsigned char)(0x036d>>8), (unsigned char)(0x4000|0x000c),(unsigned char)((0x4000|0x000c)>>8), (unsigned char)(0x4000|0x0200),(unsigned char)((0x4000|0x0200)>>8), (unsigned char)0x8410,(unsigned char)(0x8410>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), (unsigned char)(0xf800|0x07e0|0x001F),(unsigned char)((0xf800|0x07e0|0x001F)>>8), }; WriteWordIIC_HW(0xB0,0x9c,640); WriteWordIIC_HW(0xB0,0xa0,2296); WriteSequenceScaler(0xe0,PaletteTab); WriteSequenceScaler(0xe0,OneBitFont); WriteSequenceScaler(0xe0,FourBitFont); } void SetPosition(void) { unsigned short xy; if((OSD_Control & 0x80) == 0){ if(OSD_Type == 0x02){ xy = (unsigned long)(1024 - (12 * 1 * 32)) / 2 * OSD_X / 100; WriteWordIIC_HW(0xB0,0x96,xy); if((flag3 & 0x04) != 0x00) printf("OSD2 X = %d\r\n",xy); WriteWordIIC_HW(0xB0,0x98,32-1); xy = (unsigned long)(768 - (18 * 1 * 5)) / 2 * (100 - OSD_Y) / 100; WriteWordIIC_HW(0xB0,0x99,xy); WriteIIC_HW(0xB0,0x9b,5-1); if((flag3 & 0x04) != 0x00) printf("OSD2 Y = %d\r\n",xy); } else{ xy = (unsigned long)(1024 - (12 * 1 * 32)) * OSD_X / 100; WriteWordIIC_HW(0xB0,0x96,xy); if((flag3 & 0x04) != 0x00) printf("OSD1 X = %d\r\n",xy); WriteWordIIC_HW(0xB0,0x98,32-1); xy = (unsigned long)(768 - (18 * 1 * 15)) * (100 - OSD_Y) / 100; WriteWordIIC_HW(0xB0,0x99,xy); WriteIIC_HW(0xB0,0x9b,15-1); if((flag3 & 0x04) != 0x00) printf("OSD1 Y = %d\r\n",xy); } } else{ if(OSD_Type == 0x02){ xy = (unsigned long)(1024 - (18 * 1 * 5)) / 2 * OSD_X / 100; WriteWordIIC_HW(0xB0,0x96,xy); if((flag3 & 0x04) != 0x00) printf("OSD2 X = %d\r\n",xy); WriteWordIIC_HW(0xB0,0x98,32-1); xy = (unsigned long)(768 - (12 * 1 * 32)) / 2 * (100 - OSD_Y) / 100; WriteWordIIC_HW(0xB0,0x99,xy); WriteIIC_HW(0xB0,0x9b,5-1); if((flag3 & 0x04) != 0x00) printf("OSD2 Y = %d\r\n",xy); } else{ xy = (unsigned long)(1024 - (18 * 1 * 15)) * OSD_X / 100; WriteWordIIC_HW(0xB0,0x96,xy); if((flag3 & 0x04) != 0x00) printf("OSD1 X = %d\r\n",xy); WriteWordIIC_HW(0xB0,0x98,32-1); xy = (unsigned long)(768 - (12 * 1 * 32)) * (100 - OSD_Y) / 100; WriteWordIIC_HW(0xB0,0x99,xy); WriteIIC_HW(0xB0,0x9b,15-1); if((flag3 & 0x04) != 0x00) printf("OSD1 Y = %d\r\n",xy); } } WriteIIC_HW(0xB0,0xa4,0x00); WaitSetup(40); } void ClearOSD(void) { if(OSD_Type < 2){ if((flag3 & 0x01) == 0x00) WriteWordIIC_HW(0xB0,0xcc,(((0-1)<<8)|(4<<4))); else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -