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

📄 align.c

📁 7541数字高频头源程序
💻 C
📖 第 1 页 / 共 5 页
字号:
							break;
					}
					break;

				
			}
			#endif
			
			#if TDA7541Tuner
			switch(Align.SubMode)
			{
				case ALIGN_AUTO_STANDBY:
					switch(Align.SubStep)
					{
						case 0:
							if(O_J3)
							{
								//for(i=0;i<72;i++)
								for(i=0;i<100;i++)
									TunerEepromBuff[i]=BoardEepromBuff[i];
								//for(i=0;i<40;i++)
									//Radio.TunerBuff[i]=TunerEepromBuff[i+10];
								//	EepromBuff[i]=TunerEepromBuff[i+10];//yete: fix at May-25-06
								Radio.F_ForceSetBuff=1;
							}
							/*IFC Counter Status: ON (Reg5_D3)
							IFC Frequency window: FM 6.25KHz / AM 1 kHz (Reg6_D7_5)
							Fcenter : FM 10.7MHz / AM 464 kHz (Reg6_D4_0)
							Tsample: FM 5.12ms / AM 32ms (Reg5_D2_0)
							SSTOP: IFC Status (Reg23_D7_4)*/
							
							AutoAlignSelector=BoardEepromBuff[8];//00-EU/USA, 01-EU/USA, OIRT, 02-EU/USA,JP, 03-EU/USA, OIRT,JP							
							
							Align.BackupFreq=Radio.Freq;
							Align.BackupArea=Radio.Area;
							Radio.Area=AREA_EUROPE;
							Radio.F_ForceSetBuff=1;
							RadioSetFreq(9410);
							Radio.TunerBuff[10] &= 0x0F;
							RadioTunerSend(10,10);
							
							Align.SubStep=1;
							break;
						case 1:
							
							break;
					}
					break;
					
				case ALIGN_AUTO_XTAL:
					switch(Align.SubStep)
					{
						case 0:
							for(i=0;i<32;i++)
							{
								Radio.TunerBuff[13] &= 0xe0;
								Radio.TunerBuff[13] += i;
								RadioTunerSend(13,13);
								Wait1ms(50);
								if(CheckIFC(5, 100))
									break;
							}

							for(j=32;j>0;j--)
							{
								Radio.TunerBuff[13] &= 0xe0;
								Radio.TunerBuff[13] += (j-1);
								RadioTunerSend(13,13);
								Wait1ms(50);
								if(CheckIFC(5, 100))
									break;
							}

							temp=(i+j)/2;
							Radio.TunerBuff[13] &= 0xe0;
							Radio.TunerBuff[13] += temp;
							RadioTunerSend(13,13);

							TunerEepromBuff[23]=(TunerEepromBuff[23]&0xe0)|temp;
							TunerEepromBuff[83]=(TunerEepromBuff[83]&0xe0)|temp;

							RadioSetFreq(999);
							Align.SubStep=1;
							break;

						case 1:
							Align.SubMode=ALIGN_AUTO_XTAL_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

				case ALIGN_AUTO_AMIFTANK:
					switch(Align.SubStep)
					{
						case 0:
							for(i=0,temp=0,temp2=0;i<16;i++)
							{
								Radio.TunerBuff[14] &= 0xF0;
								Radio.TunerBuff[14] += i;
								RadioTunerSend(14,14);
								Wait1ms(140);
								j=GetSMeter();
								if(j>temp)
								{
									temp=j;
									temp2=i;
								}
							}

							Radio.TunerBuff[14] &= 0xF0;
							Radio.TunerBuff[14] += temp2;
							RadioTunerSend(14,14);

							TunerEepromBuff[24]=(TunerEepromBuff[24]&0xf0)|temp2;
							TunerEepromBuff[84]=(TunerEepromBuff[84]&0xf0)|temp2;


							RadioSetFreq(9410);
							Align.SubStep=1;
							break;

						case 1:
							Align.SubMode=ALIGN_AUTO_AMIFTANK_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

				case ALIGN_AUTO_IMAGE:
					switch(Align.SubStep)
					{
						case 0:
							for(i=0,temp=0xFF,temp2=0;i<16;i++)
							{
								Radio.TunerBuff[15] &= 0xF0;
								Radio.TunerBuff[15] += i;
								RadioTunerSend(15,15);
								Wait1ms(4);
								j=GetSMeter();
								if(j<temp)
								{
									temp=j;
									temp2=i;
								}
							}

							Radio.TunerBuff[15] &= 0xF0;
							Radio.TunerBuff[15] += temp2;
							RadioTunerSend(15,15);

							TunerEepromBuff[25]=(TunerEepromBuff[25]&0xf0)|temp2;
							TunerEepromBuff[85]=(TunerEepromBuff[85]&0xf0)|temp2;


							//RadioSetFreq(8750);
							RadioSetFreq(8810);
							Align.SubStep=1;
							break;

						case 1:
							Align.SubMode=ALIGN_AUTO_IMAGE_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

				case ALIGN_AUTO_TV2_881:
 //                           case ALIGN_AUTO_TV2_875:
					switch(Align.SubStep)
					{
						case 0:
							for(ii=0x0000,temp=0;ii<256;ii++)
							{
								Radio.TunerBuff[3] = (unsigned char)(ii & 0x00FF);
								RadioTunerSend(3,3);
								Wait1ms(3);//Have to check the constant time!!!!!!!
								j=GetSMeter();
								if(j>temp)
								{
									temp=j;
									temp2=(unsigned char)(ii & 0x00FF);
								}
							}
							Radio.TunerBuff[3] = temp2;
							RadioTunerSend(3,3);

							TunerEepromBuff[50]=Radio.TunerBuff[3];

							RadioSetFreq(9810);
							Align.SubStep=1;
							break;

						case 1:
							Align.SubMode=ALIGN_AUTO_TV2_881_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

				case ALIGN_AUTO_TV2_981:
					switch(Align.SubStep)
					{
						case 0:
							for(ii=0x0000,temp=0;ii<256;ii++)
							{
								Radio.TunerBuff[3] = (unsigned char)(ii & 0x00FF);
								RadioTunerSend(3,3);
								Wait1ms(4);
								j=GetSMeter();
								if(j>temp)
								{
									temp=j;
									temp2=(unsigned char)(ii & 0x00FF);
								}
							}
							Radio.TunerBuff[3] = temp2;
							RadioTunerSend(3,3);

							TunerEepromBuff[51]=Radio.TunerBuff[3];

							RadioSetFreq(10750);
							Align.SubStep=1;
							break;

						case 1:
							Align.SubMode=ALIGN_AUTO_TV2_981_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

				//case ALIGN_AUTO_TV2_108:
				case ALIGN_AUTO_TV2_1075:
					switch(Align.SubStep)
					{
						case 0:
							for(ii=0x0000,temp=0;ii<256;ii++)
							{
								Radio.TunerBuff[3] = (unsigned char)(ii & 0x00FF);
								RadioTunerSend(3,3);
								Wait1ms(4);
								j=GetSMeter();
								if(j>temp)
								{
									temp=j;
									temp2=(unsigned char)(ii & 0x00FF);
								}
							}
							Radio.TunerBuff[3] = temp2;
							RadioTunerSend(3,3);

							TunerEepromBuff[52]=Radio.TunerBuff[3];
							CalculateOtherPoint(ALIGN_EU);	

							if(!O_J3)
							{
								EepromWrite(TunerEepromAddress, 23, 3, &TunerEepromBuff[23]);
								Wait1ms(25);
								EepromWrite(TunerEepromAddress, 83, 3, &TunerEepromBuff[83]);
								Wait1ms(25);
								EepromWrite(TunerEepromAddress, 50, 3, &TunerEepromBuff[50]);
								Wait1ms(25);
								EepromWrite(TunerEepromAddress, 56, 4, &TunerEepromBuff[56]);
							}
							else
							{
								//for(i=0;i<30;i++)
								//	TunerEepromBuff[i+10]=Radio.TunerBuff[i];
								TunerEepromBuff[0]=0x0B;
								
								for(i=0;i<12;i++)
								{
									EepromWrite(TunerEepromAddress, i*8, 8, &TunerEepromBuff[i*8]);
									Wait1ms(25);
								}
								EepromWrite(TunerEepromAddress, 94, 4, &TunerEepromBuff[94]);
								Wait1ms(25);
							}
							
							Align.SubStep=1;
							break;

						case 1:
							if(AutoAlignSelector==ALIGN_EU_ORIT ||AutoAlignSelector==ALIGN_EU_ORIT_JP)
							{
								Radio.Area=AREA_OIRT;
								Radio.F_ForceSetBuff=1;
								RadioSetFreq(6500);
								
							}
							else if(AutoAlignSelector==ALIGN_EU_JP)
							{
								Radio.Area=AREA_JAPAN;	
								Radio.F_ForceSetBuff=1;
								RadioSetFreq(7800);								
							}
							else
							{
								Radio.Area=Align.BackupArea;
								Radio.F_ForceSetBuff=1;
								RadioSetFreq(Align.BackupFreq);
								
							}
							Align.SubMode=ALIGN_AUTO_TV2_1075_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

                            case ALIGN_AUTO_TV2_65:
					switch(Align.SubStep)
					{
						case 0:
							for(ii=0x0000,temp=0;ii<256;ii++)
							{
								Radio.TunerBuff[3] = (unsigned char)(ii & 0x00FF);
								RadioTunerSend(3,3);
								Wait1ms(4);
								j=GetSMeter();
								if(j>temp)
								{
									temp=j;
									temp2=(unsigned char)(ii & 0x00FF);
								}
							}
							Radio.TunerBuff[3] = temp2;
							RadioTunerSend(3,3);

							TunerEepromBuff[53]=Radio.TunerBuff[3];

							RadioSetFreq(6800);
							Align.SubStep=1;
							break;

						case 1:
							Align.SubMode=ALIGN_AUTO_TV2_65_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

				case ALIGN_AUTO_TV2_68:
					switch(Align.SubStep)
					{
						case 0:
							for(ii=0x0000,temp=0;ii<256;ii++)
							{
								Radio.TunerBuff[3] = (unsigned char)(ii & 0x00FF);
								RadioTunerSend(3,3);
								Wait1ms(4);
								j=GetSMeter();
								if(j>temp)
								{
									temp=j;
									temp2=(unsigned char)(ii & 0x00FF);
								}
							}
							Radio.TunerBuff[3] = temp2;
							RadioTunerSend(3,3);

							TunerEepromBuff[54]=Radio.TunerBuff[3];

							RadioSetFreq(7250);
							Align.SubStep=1;
							break;

						case 1:
							Align.SubMode=ALIGN_AUTO_TV2_68_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

				case ALIGN_AUTO_TV2_725:
					switch(Align.SubStep)
					{
						case 0:
							for(ii=0x0000,temp=0;ii<256;ii++)
							{
								Radio.TunerBuff[3] = (unsigned char)(ii & 0x00FF);
								RadioTunerSend(3,3);
								Wait1ms(4);
								j=GetSMeter();
								if(j>temp)
								{
									temp=j;
									temp2=(unsigned char)(ii & 0x00FF);
								}
							}
							Radio.TunerBuff[3] = temp2;
							RadioTunerSend(3,3);

							TunerEepromBuff[55]=Radio.TunerBuff[3];
							EepromWrite(TunerEepromAddress, 53, 3, &TunerEepromBuff[53]);
							Align.SubStep=1;
							break;

						case 1:
							if(AutoAlignSelector==ALIGN_EU_ORIT_JP)
							{
								Radio.Area=AREA_JAPAN;
								Radio.F_ForceSetBuff=1;
								RadioSetFreq(7800);
							}
							else 
							{
								Radio.Area=Align.BackupArea;
								Radio.F_ForceSetBuff=1;
								RadioSetFreq(Align.BackupFreq);
							}
							Align.SubMode=ALIGN_AUTO_TV2_725_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;
					
                            case ALIGN_AUTO_TV2_78:
					switch(Align.SubStep)
					{
						case 0:
							for(ii=0x0000,temp=0;ii<256;ii++)
							{
								Radio.TunerBuff[3] = (unsigned char)(ii & 0x00FF);
								RadioTunerSend(3,3);
								Wait1ms(4);
								j=GetSMeter();
								if(j>temp)
								{
									temp=j;
									temp2=(unsigned char)(ii & 0x00FF);
								}
							}
							Radio.TunerBuff[3] = temp2;
							RadioTunerSend(3,3);

							TunerEepromBuff[60]=Radio.TunerBuff[3];

							RadioSetFreq(8400);
							Align.SubStep=1;
							break;

						case 1:
							Align.SubMode=ALIGN_AUTO_TV2_78_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

				case ALIGN_AUTO_TV2_84:
					switch(Align.SubStep)
					{
						case 0:
							for(ii=0x0000,temp=0;ii<256;ii++)
							{
								Radio.TunerBuff[3] = (unsigned char)(ii & 0x00FF);
								RadioTunerSend(3,3);
								Wait1ms(4);
								j=GetSMeter();
								if(j>temp)
								{
									temp=j;
									temp2=(unsigned char)(ii & 0x00FF);
								}
							}
							Radio.TunerBuff[3] = temp2;
							RadioTunerSend(3,3);

							TunerEepromBuff[61]=Radio.TunerBuff[3];

							RadioSetFreq(8800);
							Align.SubStep=1;
							break;

						case 1:
							Align.SubMode=ALIGN_AUTO_TV2_84_OK;
							Align.SubStep=0;
							Align.F_DispReq=1;
							break;
					}
					break;

				case ALIGN_AUTO_TV2_88:
					switch(Align.SubStep)
					{
						case 0:
							for(ii=0x0000,temp=0;ii<256;ii++)
							{
								Radio.TunerBuff[3] = (unsigned char)(ii & 0x00FF);
								Rad

⌨️ 快捷键说明

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