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

📄 ll_tun0360.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
					
					case 166667:
					
					chargepump=chargepump|(2);
					break;

					case 62500:
					chargepump=chargepump;
					break;

					}
				Tuner->WrBuffer[2]    = (unsigned char) chargepump;  
				channel_size=Tuner->ChannelBW;
				Tuner->WrBuffer[3]    = (unsigned char) 0xAC; 
				if(Tuner->StepSize ==50000 || Tuner->StepSize ==62500)
				{
				   Tuner->WrBuffer[3]    = (unsigned char) 0x44;    
				   if (frequency<=68000)
				   {
				      Tuner->WrBuffer[3] = (unsigned char) (0x49); /* VHF   I */ 
				   }
				   else if (frequency<=228000)
				   {
				      Tuner->WrBuffer[3] = (unsigned char) (0x4A); /* VHF III */
				   }
				   else
				   {
				      Tuner->WrBuffer[3] = (unsigned char) (0x4C); /*   UHF   */
				   }
				   if(channel_size == 7)
				   {
				      Tuner->WrBuffer[3] &= 0xF7;
				   }
				   Tuner->WrSubBuffer[3] = Tuner->WrSubBuffer[3];
				}
				else
				{
				   if (frequency<=68000)
				   {
				      Tuner->WrBuffer[3] = (unsigned char) (0x69); /* VHF   I */ 
				   }
				   else if (frequency<=228000)
				   {
				      Tuner->WrBuffer[3] = (unsigned char) (0x6A); /* VHF III */
				   }
				   else if (frequency <=620000)
				   {
				      Tuner->WrBuffer[3] = (unsigned char) (0x6C); /*   UHF   */
				   }
				   else
				   {
				        Tuner->WrBuffer[3] = (unsigned char) (0xAC); /*   UHF   */
				   }
				   if(channel_size == 7)
				   {
				      Tuner->WrBuffer[3] &= 0xF7;
				   } 					    
				   Tuner->WrSubBuffer[3] = Tuner->WrSubBuffer[3];
				}
  		break;	
		#endif

			
		#ifdef STTUNER_DRV_TER_TUN_ENG47402G1
		case  	STTUNER_TUNER_ENG47402G1:
				chargepump = 0x88;							
				Tuner->WrBuffer[2] = (unsigned char) chargepump;  
				loc_CB=0x0;
				if (frequency <= 230000) 
					{
					loc_CB = 0x62;
					}
				else if (frequency <= 518000)
					{
					loc_CB = 0x64;					
					}
				else if (frequency <= 758000)
					{
					loc_CB = 0xA4;					
					}
				else 
					{
					loc_CB = 0xE4;					
					}
				
			Tuner->WrBuffer[3]   = (unsigned char) loc_CB;  			
			Tuner->WrSubBuffer[2]= (unsigned char) 0xFA;
			Tuner->WrSubBuffer[3]= (unsigned char) 0x6C;
		break;	
		#endif

			
			/*************************NEW TUNER**********************************************************/
			
		#ifdef STTUNER_DRV_TER_TUN_ED5058
		case  	STTUNER_TUNER_ED5058:
				/*if 		(frequency <= 239900) chargepump=(unsigned char)0x32;
				  else if (frequency <= 309900) chargepump=(unsigned char)0x52;
				  else if (frequency <= 379900) chargepump=(unsigned char)0x72;
				  else if (frequency <= 429900) chargepump=(unsigned char)0x92;*/
				
				
				/***************** UHF BAND ***********************************/
				if      (frequency <= 577900) chargepump=(unsigned char)0x94;
				else if (frequency <= 649900) chargepump=(unsigned char)0xB4;
				else if (frequency <= 745900) chargepump=(unsigned char)0xD4;
				else  chargepump=(unsigned char)0xF4;
			
					
				
			
				Tuner->WrBuffer[3] = (unsigned char) chargepump;
				channel_size=Tuner->ChannelBW;
				#ifdef HOST_PC
				UsrRdInt("CHANNEL_WIDTH",&channel_size); 			
				#endif
	
				
				
				
  				if (channel_size==7) Tuner->WrBuffer[3]= ( (Tuner->WrBuffer[3]) | (0x10)); 
  	
  	
  	
  			/*	Tuner->WrSubBuffer[3]=Tuner->WrBuffer[3];*/
				/* Tuner->WrBuffer[4] = (unsigned char) Tuner->Address; */
				Tuner->WrBuffer[2]= 0xCA; /* Configuration en mode normal et avec freq step de 166,67 khz*/
				/* The auxilary byte replaces bandswitch byte */
				
				Atc=1;
				#ifdef HOST_PC
				UsrRdInt("Atc",&Atc); 			
				#endif
				
				Tuner->WrBuffer[4] = (unsigned char) (0x80 | (Atc<<3));
		break;		
		#endif

		/******************************************************************************************/
		
		/*************MIVAR********************************************/
		#ifdef STTUNER_DRV_TER_TUN_MIVAR
		case  	STTUNER_TUNER_MIVAR:
					/*#ifdef HOST_PC
					UsrRdInt("Atc",&Atc); 			
					#else
					Atc=1;
					#endif*/
					Atc=1;
					frequency+=Tuner->IF; 
			
				if (frequency <= 136000)      chargepump=(unsigned char)0x41;
				else if (frequency <= 160000) chargepump=(unsigned char)0x61;
				else if (frequency <= 164000) chargepump=(unsigned char)0x81;
				else if (frequency <= 176000) chargepump=(unsigned char)0xA1;
				else if (frequency <= 185000) chargepump=(unsigned char)0xC1;/*spec modified*/
				else if (frequency <= 196000) chargepump=(unsigned char)0x42;/*spec modified*/
				
				else if (frequency <= 284000) chargepump=(unsigned char)0x42;
				else if (frequency <= 324000) chargepump=(unsigned char)0x62;
				else if (frequency <= 364000) chargepump=(unsigned char)0x82;
				else if (frequency <= 408000) chargepump=(unsigned char)0xA2;
				else if (frequency <= 444000) chargepump=(unsigned char)0xC2;
				else if (frequency <= 484000) chargepump=(unsigned char)0xA2;/* Should be 0xA2 */
				
				else if (frequency <= 500000) chargepump=(unsigned char)0x44;
				else if (frequency <= 524000) chargepump=(unsigned char)0x64;
				else if (frequency <= 560000) chargepump=(unsigned char)0x84;
				else if (frequency <= 712000) chargepump=(unsigned char)0xA4;
				else if (frequency <= 868000) chargepump=(unsigned char)0xC4;
			 /* else if (frequency <= 878000) chargepump=(unsigned char)0xE4;*/ /*should be 0xE4 */
				else if (frequency <= 904000) chargepump=(unsigned char)0xA4;/*should be 0xE4 */

				else  chargepump=(unsigned char)0xC4;
				Tuner->WrSubBuffer[3] = (unsigned char) chargepump;  
				/*
				chargepump=(chargepump&(0x3F));
				chargepump|=(2<<5);
				*/
				Tuner->WrBuffer[3] = (unsigned char) chargepump;  
				Tuner->WrBuffer[2] = (unsigned char) 0x8B;
				Tuner->WrSubBuffer[2] = (unsigned char) 0x83;				
				
				
				chargepump=(unsigned char)0xC8;
				
				
				switch(Tuner->StepSize)
					{
					case 50000:
		
					chargepump=(chargepump|0x3);	
					
					break;
					
					case 166667:
					
					chargepump=chargepump|(2);
					break;

					case 62500:
					chargepump=chargepump;
					break;

					case 125000:
					chargepump=chargepump|(0x4);					
					break;

					case 142860:
					chargepump=chargepump|(0x1);/* RSA RSB */
					break;
					}
				
				
				
				Tuner->WrBuffer[4]    = (unsigned char)(chargepump);
				Tuner->WrSubBuffer[4] = (unsigned char)(chargepump ); 		/*   UHF   */
				frequency-=Tuner->IF;   
		break;					
		#endif
			
			/**************TDED4**************************/
		#ifdef STTUNER_DRV_TER_TUN_TDED4
		case  	STTUNER_TUNER_TDED4:
				channel_size=Tuner->ChannelBW;
				#ifdef HOST_PC
				UsrRdInt("CHANNEL_WIDTH",&channel_size); 			
				#endif
  				if 		(frequency <= 230000) 	chargepump=(unsigned char)0x02;
				else if (frequency <= 824000) 	chargepump=(unsigned char)0x08;
				else 							chargepump=(unsigned char)0x88;
		/*		if (channel_size==8) (chargepump=chargepump|4); 				*/
				Tuner->WrBuffer[3] = chargepump;  
				
		break;		
		#endif

			/************DTT7102*********************/
		#ifdef STTUNER_DRV_TER_TUN_DTT7102
		case  	STTUNER_TUNER_DTT7102:
				if 		(frequency <= 230000) chargepump=(unsigned char)0xB4;/* modifs of the spec */
				else if (frequency <= 699000) chargepump=(unsigned char)0xBC;
				else if (frequency <= 799000) chargepump=(unsigned char)0xF4;
				else if (frequency <= 860000) chargepump=(unsigned char)0xFC;
				else  chargepump=(unsigned char)0xFC;
				switch(Tuner->StepSize)
					{
					case 50000:
		
					chargepump=(chargepump&0xC9);	
					
					break;
					case 31250:
					chargepump=(chargepump&0xC9);
					chargepump=chargepump|((0x1)<<1);
					break;
					
					case 166667:
					chargepump=(chargepump&0xF9);
					chargepump=chargepump|(2<<1);
					break;

					case 62500:
					chargepump=(chargepump&0xF9);
					chargepump=chargepump|(3<<1);					
					break;

					case 125000:
					chargepump=(chargepump&0xC9);
					chargepump=chargepump|(0x3<<4);					
					break;

					case 142860:
					chargepump=(chargepump&0xC9);
					chargepump=chargepump|(0x3<<4);					
					chargepump=chargepump|(0x1<<1);/* RSA RSB */
					break;
					}
				Tuner->WrBuffer[2] = (unsigned char) chargepump;  
	
				channel_size=Tuner->ChannelBW;
				#ifdef HOST_PC
				UsrRdInt("CHANNEL_WIDTH",&channel_size); 			
				#endif
				
				if (frequency<=68000) 	   Tuner->WrBuffer[3] = (unsigned char) 0x01; /* VHF   I */ 
				else if (frequency<=228000) Tuner->WrBuffer[3] = (unsigned char) 0x02; /* VHF III */
				else 					   Tuner->WrBuffer[3] = (unsigned char) 0x08; /*   UHF   */
  						
  				if (channel_size==7) Tuner->WrBuffer[3]= ( (Tuner->WrBuffer[3]) | (0x10));
  					
				/* Tuner->WrBuffer[4] = (unsigned char) Tuner->Address; */
				Tuner->WrSubBuffer[2]= 	((chargepump & 0xC7)|(3<<3));
				Atc=1;
				#ifdef HOST_PC
				UsrRdInt("Atc",&Atc); 			
				#endif
				Tuner->WrSubBuffer[3] = (unsigned char) (0x20 | (Atc<<7));
		break;		
		#endif

			
			/***************TECC2849PG******************************/
		#ifdef STTUNER_DRV_TER_TUN_TECC2849PG
		case  	STTUNER_TUNER_TECC2849PG:
				if 		(frequency <= 150000) chargepump=(unsigned char)0xB0;/* modifs of the spec */
				else if (frequency <= 174000) chargepump=(unsigned char)0xB8;
				else if (frequency <= 400000) chargepump=(unsigned char)0xB0;
				else if (frequency <= 466000) chargepump=(unsigned char)0xB8;
				else if (frequency <= 730000) chargepump=(unsigned char)0xB8;
				else if (frequency <= 860000) chargepump=(unsigned char)0xF4;
				else  chargepump=(unsigned char)0xB8;
				switch(Tuner->StepSize)
					{
								
					case 166667:

					chargepump=chargepump|(2<<1);
					break;
					
					case 50000:
					case 31250:
					case 62500:
					
					chargepump=chargepump|(3<<1);					
					break;

					case 125000:
					
					chargepump=chargepump|(0x0<<1);					
					break;

					case 142860:

                                        
					chargepump=chargepump|(0x1<<1);/* RSA RSB */
					break;
					}
				/*UsrRdInt("Atc",&Atc);*/
				  Atc=1;
				  chargepump=chargepump|(Atc);/* RSA RSB */
				
				Tuner->WrBuffer[2] = (unsigned char) chargepump;  
	
				channel_size=Tuner->ChannelBW;
				#ifdef HOST_PC
				UsrRdInt("CHANNEL_WIDTH",&channel_size); 			
				#endif
				
				if (frequency<=174000) 	   Tuner->WrBuffer[3] = (unsigned char) 0x01;  /* VHF LOW  */ 
				else if (frequency<474000) Tuner->WrBuffer[3] = (unsigned char) 0x02;  /* VHF HIGH */
				else 					   Tuner->WrBuffer[3] = (unsigned char) 0x08;  /*    UHF   */
  				
				#ifdef HOST_PC
				UsrRdInt("Atc",&Atc); 			
				#endif
		break;		
		#endif

			
		#ifdef STTUNER_DRV_TER_TUN_TDCC2345
		case  	STTUNER_TUNER_TDCC2345:
				
				if(frequency <= 150000) chargepump=(unsigned char)0xB8;/* modifs of the spec */
				else if (frequency <= 174000) chargepump=(unsigned char)0xF0;
				else if (frequency <= 374000) chargepump=(unsigned char)0xB8;
				else if (frequency <= 454000) chargepump=(unsigned char)0xF0;
				else if (frequency <= 470000) chargepump=(unsigned char)0xF8;
				else if (frequency <= 542000) chargepump=(unsigned char)0xB8;
				else if (frequency <= 830000) chargepump=(unsigned char)0xF0;
				else if (frequency <= 860000) chargepump=(unsigned char)0xF8;
				else  chargepump=(unsigned char)0xB8;
				switch(Tuner->StepSize)
					{
					
					case 166667:
					chargepump=chargepump|(2<<1);
					break;
					
					case 50000:
					case 31250:
					case 62500:
					chargepump=chargepump|(3<<1);					
					break;

					case 125000:
					
					chargepump=chargepump|(0xC<<1);					
					break;

					case 142860:
					chargepump=chargepump|(0xD<<1);/* RSA RSB */
					break;
					}
				/*UsrRdInt("Atc",&Atc); */
				Atc=1;
				chargepump=chargepump|(Atc); /* RSA RSB */
				
				Tuner->WrBuffer[2] = (unsigned char) chargepump;  
	
				channel_size=Tuner->ChannelBW;
				#ifdef HOST_PC
				UsrRdInt("CHANNEL_WIDTH",&channel_size); 			
				#endif
				
				if (frequency<=174000) 	   Tuner->WrBuffer[3] = (unsigned char) 0x01;  /* VHF LOW  */ 
				else if (frequency<474000) Tuner->WrBuffer[3] = (unsigned char) 0x02;  /* VHF HIGH */
				else 					   Tuner->WrBuffer[3] = (unsigned char) 0x08;  /*    UHF   */
  				
				#ifdef HOST_PC
				UsrRdInt("Atc",&Atc); 			
				#endif
		break;		
		#endif
#endif		
		
			
			default:
			break;
			}
		

⌨️ 快捷键说明

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