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

📄 osd.c

📁 CRT显示器的运行程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	              DisData++;
			SendI2CByte(0x80+z);
			SendI2CByte(x);                     //Character
	              SendI2CByte(*DisDataA);
	              DisDataA++;
                     SendI2CByte(0xa0+z);
                     SendI2CByte(x);
                     SendI2CByte(*DisDataB);
                     DisDataB++;
      	  	 }
			    SendI2CStop(); 

}
void Show_String(BYTE x,BYTE ENDx,BYTE y,BYTE *DisData)
{
    GoI2CMaster(0x7A);
	for(x;x<ENDx;x++){
		SendI2CByte(0x80+y);
	       SendI2CByte(x);
		 SendI2CByte(*DisData);
		 DisData++;
		 SendI2CByte(0xa0+y);
		 SendI2CByte(x);                     //BackGround
	        SendI2CByte(0x71);
	        
               }
	SendI2CStop();
}

//----------------------------------------
void MoveCursor(char delta)
{
//        a=ab[cursor-1][0];
//	a=a+0x10;
//        b=ab[cursor-1][1];
//	b=b+0x10;

	if(!AdjustFlag)
	{
		cursor += delta;
		if(cursor>18) cursor=1;
		if(cursor<1) cursor=18;
		UpdateOsd();
	}
	else
	{ 
	minper+=delta;
//	else{minper=a;}
	 if(minper>max) {minper=max;return;}
        if(minper<min) {minper=min;return;}
		
//        if(minper>b) {minper=b;return;}
//        if(minper<a) {minper=a;return;}
//		minper=minper-0x10;
		ShowParScroll(6,22,Scroll,ScrollColor);
		ShowParPercent(12,17,Percent,OSDMain1);
		if (cursor==1) Write_TDA4886_Reg(0x01,min+minper);
		if (cursor==2) Write_TDA4886_Reg(0x02,min+minper);
		if (cursor==3) Write_TDA48XX_Reg(0x00,min+minper);
		if (cursor==4) Write_TDA48XX_Reg(0x06,min+minper);
		if (cursor==5) Write_TDA48XX_Reg(0x08,min+(minper&0xfe));
		if (cursor==6) Write_TDA48XX_Reg(0x02,min+(minper&0xfe));
		if (cursor==7) Write_TDA48XX_Reg(0x04,min+minper);
		if (cursor==8) Write_TDA48XX_Reg(0x0c,min+(minper&0xf0));
		if (cursor==9) Write_TDA48XX_Reg(0x0c,min+minper);
		if (cursor==10) {
                                         Write_TDA48XX_Reg(0x00,min+minper);
		                           Write_TDA48XX_Reg(0x08,min+(minper&0xfe));
                        }
		if (cursor==11) XFR_DA1=PWM_ROTATION+minper;
		
		if (cursor==18) CloseOsd();
					    
		     
	}
	

}

void MoveCursor1(char delta)
{
        a=0x00;
        b=0x3f;
                                                                                                     
	if(!AdjustFlag)
	{
		cursor += delta;
		if(cursor>4) cursor=4;
		if(cursor<1) cursor=1;
		UpdateOsd1();
	}
	else
	{ 
	 minper+=delta;
        if(minper>b) minper=b;
        if(minper<a) minper=a;
	 ShowParScroll(6,22,Scroll,ScrollColor);
	 ShowParPercent(12,17,Percent,OSDMain1);
		
		                       
		if(cursor==2) Write_TDA4886_Reg(0x05,RGAIN+minper);
		if(cursor==3) Write_TDA4886_Reg(0x06,GGAIN+minper);
		if(cursor==4) Write_TDA4886_Reg(0x07,BGAIN+minper);
              if(cursor==1) {if (Adckey_buf==Menu) {OSDIndex=0;ShowMainMenu();}}	     
	}
}


void MoveCursor2(char delta)
{
//unsigned char x,y,lhk,make;
      //  x=ab1[cursor-2][0];
     //   y=ab1[cursor-2][1];

	if(!AdjustFlag)
	{
		cursor += delta;
		if(cursor>5) cursor=5;
		if(cursor<1) cursor=1;
		UpdateOsd2();
	}
	else
	{
	
	
	 minper+=delta;
		
        if(minper>max) minper=max;
        if(minper<min) minper=min;
	 ShowParScroll(6,22,Scroll,ScrollColor);
	 ShowParPercent(12,17,Percent,OSDMain1);
		
		                       
		if(cursor==2) Write_TDA48XX_Reg(0x07,minper);
		if(cursor==3) Write_TDA48XX_Reg(0x09,minper);
		if(cursor==4) Write_TDA48XX_Reg(0x05,minper);
		if(cursor==5) Write_TDA48XX_Reg(0x03,VMOIRE+minper);
        if(cursor==1) {if (Adckey_buf==Menu) {	OSDIndex=0;ShowMainMenu();}}	     
	}
}
//--------------------------------------------------------
void OpenOsd(void)
{
     GoI2CMaster(0x7A);           //================================//
     SendI2CByte(0x8F);           //      row 15 of osd ic          //
     SendI2CByte(0x11);           //          column 17             //
     SendI2CByte(0x80);           //     OSDEN,BSEN,SHADOW,FAN      //          
	 SendI2CStop(); 
}
//--------------------------------------------------------
void CloseOsd(void)
{
     GoI2CMaster(0x7A);           //================================//
     SendI2CByte(0x8F);           //      row 15 of osd ic          //
     SendI2CByte(0x11);           //          column 17             //
     SendI2CByte(0x00);           //     OSDEN,BSEN,SHADOW,FAN      //          
	 SendI2CStop(); 
	 cursor=0;
	 AdjustFlag=0;
	 //entermenu=0;
}



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

void ShowParScroll(BYTE StartX,EndX,BYTE *DisData,BYTE*DisDataA)
{ 
    // BYTE data x,y;
     BYTE mm,j;
//     j=minper*100/b;
//     x=j/10;
//     y=j%10;
RegPercent();
//unsigned char data; 
//先填入空白的滚动条
    Scroll[0]=0x00;
    Scroll[1]=0x00;
	Scroll[2]=0x7d;		// "["
	for (j=2;j<a+2;j++) Scroll[j+1]=0x7e;
    if (j=a+3) {
                 if (b<2) Scroll[j]=0x82;
                 if (b>1&&b<4) Scroll[j]=0x81;
                 if (b>3&&b<6) Scroll[j]=0x80;
                 if (b>5&&b<8) Scroll[j]=0x7f;
                 if (b==8||b==9) Scroll[j]=0x7e;
                 }
    for (j=a+4;j<13;j++) Scroll[j]=0x82;
	Scroll[13]=0x83;	// "]"
    

       GoI2CMaster(0x7A);
      	  	for(mm=StartX;mm<EndX;mm++)
		{
			SendI2CByte(0x86);
			SendI2CByte(mm);      //Character
	              SendI2CByte(*DisData);
	              DisData++;
			SendI2CByte(0xa6);
			SendI2CByte(mm);                     //BackGround
	              SendI2CByte(*DisDataA);
	              DisDataA++;
      	  		}
			    SendI2CStop();   
        
}
//-------------------------------------------------------------
void ShowParPercent(BYTE StartX,EndX,BYTE *DisData,BYTE *DisDataA)
{

     //BYTE data x,y;
     BYTE mm;//j;
//     j=minper*100/b;
//     x=j/10;
//     y=j%10;
RegPercent();
     Percent[4]=0x00;
     Percent[3]=0x7a;
     if(a==10&&b==0){
                      Percent[0]=0x01;
	               Percent[1]=0x0a;				
     	             }
     else Percent[0]=0x00;
          if(a==0)  Percent[1]=0x00;
           else { if(a==1) Percent[1]=0x01;
                  if(a==2) Percent[1]=0x02;
                  if(a==3) Percent[1]=0x03;
                  if(a==4) Percent[1]=0x04;
                  if(a==5) Percent[1]=0x05;
                  if(a==6) Percent[1]=0x06;
                  if(a==7) Percent[1]=0x07;
                  if(a==8) Percent[1]=0x08;
                  if(a==9) Percent[1]=0x09;
                  }
           if(b==0) Percent[2]=0x0a;
            else{
                  if(b==1) Percent[2]=0x01;
                  if(b==2) Percent[2]=0x02;
                  if(b==3) Percent[2]=0x03;
                  if(b==4) Percent[2]=0x04;
                  if(b==5) Percent[2]=0x05;
                  if(b==6) Percent[2]=0x06;
                  if(b==7) Percent[2]=0x07;
                  if(b==8) Percent[2]=0x08;
                  if(b==9) Percent[2]=0x09;
                 }  
         	

        GoI2CMaster(0x7A);
      	  	for(mm=StartX;mm<EndX;mm++)
		{
			SendI2CByte(0x87);
			SendI2CByte(mm);      //Character
	        SendI2CByte(*DisData);
	        DisData++;
            SendI2CByte(0xa7);
            SendI2CByte(mm);
            SendI2CByte(*DisDataA);
            DisDataA++;
                                                    
      	  		}
			    SendI2CStop();   
}

void ShowVacancy(BYTE X,EndX,BYTE *DisData)
{
     BYTE mm;
     GoI2CMaster(0x7A);
      	  	for(mm=X;mm<EndX;mm++)
		{
		     SendI2CByte(0x87);
		     SendI2CByte(mm);      //Character
	            SendI2CByte(*DisData);
	            DisData++;
	            SendI2CByte(0xa7);
		     SendI2CByte(mm);                     //BackGround
	            SendI2CByte(0x71);
	              
      	  }
	   SendI2CStop();   

}


void RegPercent(void)
{
      int  j;
       //  X=0x03;
	//  if(minper<min) minper=min;
	//  if(minper>max) minper=max;
      if(OSDIndex==0){
            switch (cursor){
				case 1: min=0x00;
				            max=0x3f;
			       break;
		

⌨️ 快捷键说明

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