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

📄 osd.c

📁 CRT显示器的运行程序
💻 C
📖 第 1 页 / 共 5 页
字号:
}
void GetFactoryData(void)
{
	unsigned char temp;
	temp=(CurrentModel-1)*10+0x78;
	ModelPara.HSize=eepByteIn(temp);
	ModelPara.HPos=eepByteIn(temp+1);
	ModelPara.VSize=eepByteIn(temp+2);
	ModelPara.VPos=eepByteIn(temp+3);
	ModelPara.Pincushion=eepByteIn(temp+4);
	ModelPara.Trape=eepByteIn(temp+5);
	ModelPara.Paralle=eepByteIn(temp+6);
	ModelPara.SidePin=eepByteIn(temp+7);
	ModelPara.HCorner=eepByteIn(temp+8);
}
void GetUserData(void)
{
	unsigned char temp;
	temp=(CurrentModel-1)*10+0xdc;
	ModelPara.HSize=eepByteIn(temp);
	ModelPara.HPos=eepByteIn(temp+1);
	ModelPara.VSize=eepByteIn(temp+2);
	ModelPara.VPos=eepByteIn(temp+3);
	ModelPara.Pincushion=eepByteIn(temp+4);
	ModelPara.Trape=eepByteIn(temp+5);
	ModelPara.Paralle=eepByteIn(temp+6);
	ModelPara.SidePin=eepByteIn(temp+7);
	ModelPara.HCorner=eepByteIn(temp+8);
}*/

void ShowPicture(BYTE StartX,BYTE StartY,EndX,EndY,BYTE * DisData,BYTE * DisDataA)
{
	BYTE i,mm;
     GoI2CMaster(0x7A);
     for(i=StartY;i<EndY;i++)
     { 
        SendI2CByte(0x80+i);
        SendI2CByte(0x1E);
        SendI2CByte(0x00);//设置第一行字符的高度
	  	for(mm=StartX;mm<EndX;mm++)
		{
			SendI2CByte(0x80+i);
			SendI2CByte(mm);                     //Character
	        SendI2CByte(*DisData);
	        DisData++;
			SendI2CByte(0xa0+i);
			SendI2CByte(mm);                     //BackGround
	        SendI2CByte(*DisDataA);
	        DisDataA++;
		}
	 }
     SendI2CStop();   
}

                              
//---------------------------------------------------------------

//--------------------------------------------------------------
void ShowMainMenu(void)
{

	ShowPicture(3,3,25,12,OSDMain,OSDMainA);
	ShowPicture(3,1,25,2,ModeChar_Table[CurrentModel].ResStr,OSDMainB);
    ShowPicture(3,2,25,3,ModeChar_Table[CurrentModel].HVfre,OSDMainB);
	ShowTimingNum(); 
    //ShowHfreq();

    ShowParPercent(12,17,Percent,OSDMain1);
	OpenOsd();
	cursor=1;
	MoveCursor(0);
    
}

void ShowUserColor(void)
{
  ShowPicture(3,3,25,10,OSDMain2,OSDMainA);
    //ShowParPercent(12,16,Percent,OSDMain1);
  // ShowParScroll(6, 22,Scroll, ScrollColor);
   OpenOsd();
	
	cursor=1;
	MoveCursor1(0);
   
}

void ShowAdvanceMenu(void)
{
  ShowPicture(3,3,25,10,OSDMain3,OSDMainA);
  OpenOsd();
  cursor=1;
  MoveCursor2(0);
}






void ShowTimingNum(void)
{
      if (CurrentModel<10) {
                                       ShowPicture(3,11,25,12,Factory,OSDMainB);
                                       ShowPicture(18,11,20,12,Num[CurrentModel],OSDMainB);
						    }
	   else ShowPicture(3,11,25,12,User,OSDMainA);
}
	





//------------------------------------------------------------
void Adjust(void)
{
   if(cursor<12){
   AdjustFlag=!AdjustFlag;
    
    if(AdjustFlag) CursorXY(OSDPos[cursor-1][0],OSDPos[cursor-1][1],0x47);
	else CursorXY(OSDPos[cursor-1][0],OSDPos[cursor-1][1],0x17); 
    RegPercent();
    ShowParScroll(6,22,Scroll,ScrollColor1);
    ShowParPercent(12,17,Percent,OSDMain1);   
    }
if(cursor==12){ 
               if(Adckey_buf==Menu){
                                      PIN_DEGAUSS=1;miscDelay(1000);PIN_DEGAUSS=0;                                    
                                    }
               }
if(cursor==13){
               if(Adckey_buf==Menu)  LanguageIndex+=1;
			   if (LanguageIndex>5) LanguageIndex=0;       
			   UpdateOsd();
              }					
if(cursor==14){
                           if(Adckey_buf==Menu){OSDIndex=1;
						   	             ShowUserColor();Adckey_buf=0;
                                                              MoveCursor1(0);UpdateOsd1();miscDelay(300);
//				                            	if(cursor==1){if (Adckey_buf==Menu){OSDIndex=0;ShowMainMenu();UpdateOsd();Adckey_buf=0;}}				                            	
                           	                                  }
                       }
if(cursor==15){
	                  if(Adckey_buf==Menu) ColorTempIndex+=1;
			    if(ColorTempIndex>2) ColorTempIndex=0;
				UpdateOsd();
                       }
					         
if(cursor==16){
	                  if(Adckey_buf==Menu) 
	                        {
	                              Write_TDA4886_Reg(0x01,0x0f);
	                              Write_TDA4886_Reg(0x02,0x3f);
	                              Write_TDA4886_Reg(0x03,0x0d);
	                              Write_TDA4886_Reg(0x04,0x3f);
	                              Write_TDA4886_Reg(0x05,0x3f);
	                              Write_TDA4886_Reg(0x06,0x3f);
	                              Write_TDA4886_Reg(0x07,0x50);
	                              Write_TDA4886_Reg(0x08,0x50);
                                     Write_TDA4886_Reg(0x09,0x50);
	                              Write_TDA48XX_Reg(0x00,0x0f); 
	                              Write_TDA48XX_Reg(0x02,0x32);
                                     Write_TDA48XX_Reg(0x03,0x3f);
                                     Write_TDA48XX_Reg(0x04,0xf7);
                                     Write_TDA48XX_Reg(0x05,0x80);
                                     Write_TDA48XX_Reg(0x06,0x80);
	                              Write_TDA48XX_Reg(0x07,0x80);
	                              Write_TDA48XX_Reg(0x08,0x80);
	                              Write_TDA48XX_Reg(0x09,0x03);
	                              Write_TDA48XX_Reg(0x0a,0xe0);
                                     Write_TDA48XX_Reg(0x0c,0xaf);
				   }
                  }             

if (cursor==17){
	                     if (Adckey_buf==Menu) {
                                                                 OSDIndex=2;
									   ShowAdvanceMenu();
									   MoveCursor2(0);UpdateOsd2();miscDelay(300);
									   }
                        }
if (cursor==18){if (Adckey_buf==Menu) CloseOsd();}
                                    
}

void Adjust1(void)
{
 if(cursor==1){OSDIndex=0;cursor=1;ShowMainMenu();return;}
if(OSDIndex==1&&cursor>1&&cursor<5)
   {
//   if(cursor==1){OSDIndex=0;cursor=1;ShowMainMenu();return;}
   AdjustFlag=!AdjustFlag;
    
    if(AdjustFlag) CursorXY(OSDPos1[cursor-1][0],OSDPos1[cursor-1][1],0x47);
	else CursorXY(OSDPos1[cursor-1][0],OSDPos1[cursor-1][1],0x17);  
    ShowParScroll(6,22,Scroll,ScrollColor1);
    ShowParPercent(12,17,Percent,OSDMain1);
      
    
    }
}

void Adjust2(void)
{
 if (cursor==1){OSDIndex=0;cursor=1;ShowMainMenu();return;}
 if (OSDIndex==2&&cursor>1&&cursor<6)
	 {AdjustFlag=!AdjustFlag;
    
    if (AdjustFlag) CursorXY(OSDPos2[cursor-1][0],OSDPos2[cursor-1][1],0x47);
    else CursorXY(OSDPos2[cursor-1][0],OSDPos2[cursor-1][1],0x17);  
    ShowParScroll(6,22,Scroll,ScrollColor1);
    ShowParPercent(12,17,Percent,OSDMain1);
      
    
    }
     if (cursor==1){Adckey_buf=0;
                    if (Adckey_buf==Menu) ShowMainMenu();}                                                                     
}

//-------------------------------------------------------------
void CursorXY(BYTE cx,BYTE cy,BYTE Color)
{
    GoI2CMaster(0x7A);
    SendI2CByte(0xa0+cy);
    SendI2CByte(cx);                     //BackGround
    SendI2CByte(Color);   //设置显示字符画面,其中高4位为字符的背景色,低4位为字符颜色
    SendI2CByte(0xa0+cy);
    SendI2CByte(cx+1);                     //BackGround
    SendI2CByte(Color);   //设置显示字符画面,其中高4位为字符的背景色,低4位为字符颜色
    SendI2CStop();   
}
//-------------------------------------------------------
void UpdateOsd(void)
{
	BYTE cx;
	for(cx=0;cx<18;cx++)
	{
		CursorXY(OSDPos[cx][0],OSDPos[cx][1],0x70);
	}
	CursorXY(OSDPos[cursor-1][0],OSDPos[cursor-1][1],0x17);
    if(cursor==1) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[0],Bri[LanguageIndex],OSDMain1); }     
    if(cursor==2) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[1],Con[LanguageIndex],OSDMain1);}                 
    if(cursor==3) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[2],H_s[LanguageIndex],OSDMain1); }
    if(cursor==4) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[3],H_p[LanguageIndex],OSDMain1); }
    if(cursor==5) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[4],V_s[LanguageIndex],OSDMain1); }
    if(cursor==6) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[5],V_p[LanguageIndex],OSDMain1); }
    if(cursor==7) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[6],Pin[LanguageIndex],OSDMain1); }
    if(cursor==8) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[7],Tra[LanguageIndex],OSDMain1);}
    if(cursor==9) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[8],Par[LanguageIndex],OSDMain1); }
    if(cursor==10) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[9],Zoo[LanguageIndex],OSDMain1); }
    if(cursor==11) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[10],Rot[LanguageIndex],OSDMain1); }
    if(cursor==12) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[11],Deg[LanguageIndex],OSDMain1); }//}
    if(cursor==13) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[12],Lan[LanguageIndex],OSDMain1); }//}
    if(cursor==14) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[13],U_c[LanguageIndex],OSDMain1); }//}
    if(cursor==15) {ShowVacancy(12,17,ColorT[ColorTempIndex]);OsdItem(6,22,5,6,OsdMe[14],C_t[LanguageIndex],OSDMain1); }//}
    if(cursor==16) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[15],Rec[LanguageIndex],OSDMain1); }//}
    if(cursor==17) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[16],Adv[LanguageIndex],OSDMain1);}//}
    if(cursor==18) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[17],Exi[LanguageIndex],OSDMain1);}//ShowParPercent(12,16,Percent);}
    
}

void UpdateOsd1(void)
{
	BYTE cx;
	for(cx=0;cx<4;cx++)
	{
		CursorXY(OSDPos1[cx][0],OSDPos1[cx][1],0x70);
	}
	CursorXY(OSDPos1[cursor-1][0],OSDPos1[cursor-1][1],0x17);
    if(cursor==1)  {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe1[0],Ret[LanguageIndex],OSDMain1); }     
    if(cursor==2) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe1[1],R_g[LanguageIndex],OSDMain1);}                 
    if(cursor==3) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe1[2],G_g[LanguageIndex],OSDMain1);}
    if(cursor==4) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe1[3],B_g[LanguageIndex],OSDMain1);}
}

void UpdateOsd2(void)
{
	BYTE cx;
	for(cx=0;cx<5;cx++)
	{
		CursorXY(OSDPos2[cx][0],OSDPos2[cx][1],0x70);
	}
	CursorXY(OSDPos2[cursor-1][0],OSDPos2[cursor-1][1],0x17);
    if(cursor==1)  {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe1[0],Ret[LanguageIndex],OSDMain1); }     
    if(cursor==2) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe2[1],Sid[LanguageIndex],OSDMain1);}                 
    if(cursor==3) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe2[2],H_c[LanguageIndex],OSDMain1);}
    if(cursor==4) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe2[3],Hmo[LanguageIndex],OSDMain1);}
    if(cursor==5) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe2[4],Vmo[LanguageIndex],OSDMain1);}
}
//-------------------------------------------
void OsdItem(BYTE x,BYTE ENDx,BYTE y,BYTE z,BYTE *DisData,BYTE *DisDataA,BYTE *DisDataB)
{

       GoI2CMaster(0x7A);
      	  	for(x;x<ENDx;x++)
		{
			SendI2CByte(0x80+y);
			SendI2CByte(x);                     //Character
	              SendI2CByte(*DisData);

⌨️ 快捷键说明

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