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

📄 align.c

📁 7541数字高频头源程序
💻 C
📖 第 1 页 / 共 5 页
字号:
						case ALIGN_MANU_HIGHCUT:
						case ALIGN_MANU_FMDEMOD:
						case ALIGN_MANU_IFGAIN:
						case ALIGN_MANU_AMAGC:
						case ALIGN_MANU_IFCOUNT:
							Align.SubMode=ALIGN_MANU_STANDBY;
							Align.SubStep=ALIGN_MANU_SELECT_XTAL;
							break;
						#endif
						#if TDA7541Tuner
						case TDA7541_ALIGN_MANU_STANDBY:
							switch(Align.SubStep)
							{
								case TDA7541_ALIGN_MANU_SELECT_XTAL:
									Align.SubMode=TDA7541_ALIGN_MANU_XTAL;
									Align.SubStep=0;
									break;

								case TDA7541_ALIGN_MANU_SELECT_FMSLIDER:
									Align.SubMode=TDA7541_ALIGN_MANU_FMSLIDER;
									Align.SubStep=0;
									break;

								case TDA7541_ALIGN_MANU_SELECT_FMSTOP:
									Align.SubMode=TDA7541_ALIGN_MANU_FMSTOP;
									Align.SubStep=0;
									break;

								case TDA7541_ALIGN_MANU_SELECT_FMMUTE:
									Align.SubMode=TDA7541_ALIGN_MANU_FMMUTE;
									Align.SubStep=0;
									break;

								case TDA7541_ALIGN_MANU_SELECT_ROLLOFF:
									Align.SubMode=TDA7541_ALIGN_MANU_ROLLOFF;
									Align.SubStep=0;
									break;

								case TDA7541_ALIGN_MANU_SELECT_STBLEND:
									Align.SubMode=TDA7541_ALIGN_MANU_STBLEND;
									Align.SubStep=0;
									break;

								case TDA7541_ALIGN_MANU_SELECT_VHCL:
									Align.SubMode=TDA7541_ALIGN_MANU_VHCL;
									Align.SubStep=0;
									break;

								case TDA7541_ALIGN_MANU_SELECT_VHCH:
									Align.SubMode=TDA7541_ALIGN_MANU_VHCH;
									Align.SubStep=0;
									break;
									
								case TDA7541_ALIGN_MANU_SELECT_HIGHCUT:
									Align.SubMode=TDA7541_ALIGN_MANU_HIGHCUT;
									Align.SubStep=0;
									break;									
							}							
						break;
						case TDA7541_ALIGN_MANU_XTAL:
						case TDA7541_ALIGN_MANU_FMSLIDER:
						case TDA7541_ALIGN_MANU_FMSTOP:
						case TDA7541_ALIGN_MANU_FMMUTE:
						case TDA7541_ALIGN_MANU_ROLLOFF:
						case TDA7541_ALIGN_MANU_STBLEND:
						case TDA7541_ALIGN_MANU_VHCL:
						case TDA7541_ALIGN_MANU_VHCH:
						case TDA7541_ALIGN_MANU_HIGHCUT:
							Align.SubMode=TDA7541_ALIGN_MANU_STANDBY;
							Align.SubStep=TDA7541_ALIGN_MANU_SELECT_XTAL;
							break;
						#endif
					}
					break;
					
				case ALIGN_EEPROM:
					switch(Align.SubMode)
					{
						case ALIGN_EEPROM_STANDBY:
							switch(Align.SubStep)
							{
								case ALIGN_EEPROM_SELECT_TUNER:
									Align.SubMode=ALIGN_EEPROM_TUNER;
									Align.SubStep=0;
									Align.EditPos=1;
									break;

								case ALIGN_EEPROM_SELECT_BOARD:
									Align.SubMode=ALIGN_EEPROM_BOARD;
									Align.SubStep=0;
									Align.EditPos=1;
									break;

							}
						break;

						case ALIGN_EEPROM_TUNER:
						case ALIGN_EEPROM_BOARD:
							Align.SubMode=ALIGN_EEPROM_STANDBY;
							Align.SubStep=ALIGN_EEPROM_SELECT_TUNER;
							Flash(0,0);
							break;
					}
					break;

				case ALIGN_TUNERREG:
					Align.Mode=ALIGN_STANDBY;
					Align.SubMode=ALIGN_SELECT_AUTO;
					Align.SubStep=0;
					Flash(0,0);
					break;

				case ALIGN_COPY:
					switch(Align.SubMode)
					{
						#if TDA7540Tuner
						case ALIGN_COPY_STANDBY:
							switch(Align.SubStep)
							{
								case ALIGN_COPY_SELECT_TREG2TEEP:
									Align.SubMode=ALIGN_COPY_TREG2TEEP;
									Align.SubStep=0;
									break;

								case ALIGN_COPY_SELECT_TREG2BEEP:
									Align.SubMode=ALIGN_COPY_TREG2BEEP;
									Align.SubStep=0;
									break;

								case ALIGN_COPY_SELECT_TEEP2TREG:
									Align.SubMode=ALIGN_COPY_TEEP2TREG;
									Align.SubStep=0;
									break;

								case ALIGN_COPY_SELECT_TEEP2BEEP:
									Align.SubMode=ALIGN_COPY_TEEP2BEEP;
									Align.SubStep=0;
									break;

								case ALIGN_COPY_SELECT_BEEP2TREG:
									Align.SubMode=ALIGN_COPY_BEEP2TREG;
									Align.SubStep=0;
									break;

								case ALIGN_COPY_SELECT_BEEP2TEEP:
									Align.SubMode=ALIGN_COPY_BEEP2TEEP;
									Align.SubStep=0;
									break;

								
							}
						break;

						case ALIGN_COPY_TREG2TEEP:
						case ALIGN_COPY_TREG2BEEP:
						case ALIGN_COPY_TEEP2TREG:
						case ALIGN_COPY_TEEP2BEEP:
						case ALIGN_COPY_BEEP2TREG:
						case ALIGN_COPY_BEEP2TEEP:
							Align.SubMode=ALIGN_COPY_STANDBY;
							Align.SubStep=ALIGN_COPY_SELECT_TREG2TEEP;
							break;
						#endif

						#if TDA7541Tuner
						case TDA7541_ALIGN_COPY_STANDBY:
							switch(Align.SubStep)
							{
								case TDA7541_ALIGN_COPY_SELECT_TREG2TEEPFM:
									Align.SubMode=TDA7541_ALIGN_COPY_TREG2TEEPFM;
									Align.SubStep=0;
									break;
								case TDA7541_ALIGN_COPY_SELECT_TREG2TEEPAM:
									Align.SubMode=TDA7541_ALIGN_COPY_TREG2TEEPAM;
									Align.SubStep=0;
									break;									

								case TDA7541_ALIGN_COPY_SELECT_TREG2BEEPFM:
									Align.SubMode=TDA7541_ALIGN_COPY_TREG2BEEPFM;
									Align.SubStep=0;
									break;
								case TDA7541_ALIGN_COPY_SELECT_TREG2BEEPAM:
									Align.SubMode=TDA7541_ALIGN_COPY_TREG2BEEPAM;
									Align.SubStep=0;
									break;
									
								case TDA7541_ALIGN_COPY_SELECT_TEEP2TREG:
									Align.SubMode=TDA7541_ALIGN_COPY_TEEP2TREG;
									Align.SubStep=0;
									break;
								case TDA7541_ALIGN_COPY_SELECT_BEEP2TREG:
									Align.SubMode=TDA7541_ALIGN_COPY_BEEP2TREG;
									Align.SubStep=0;
									break;
									
								case TDA7541_ALIGN_COPY_SELECT_TEEP2BEEP:
									Align.SubMode=TDA7541_ALIGN_COPY_TEEP2BEEP;
									Align.SubStep=0;
									break;
								case TDA7541_ALIGN_COPY_SELECT_BEEP2TEEP:
									Align.SubMode=TDA7541_ALIGN_COPY_BEEP2TEEP;
									Align.SubStep=0;
									break;

								
							}
						break;

						case TDA7541_ALIGN_COPY_TREG2TEEPFM:
						case TDA7541_ALIGN_COPY_TREG2BEEPFM:
						case TDA7541_ALIGN_COPY_TEEP2TREG:
						case TDA7541_ALIGN_COPY_BEEP2TREG:
						case TDA7541_ALIGN_COPY_TREG2TEEPAM:
						case TDA7541_ALIGN_COPY_TREG2BEEPAM:						
						case TDA7541_ALIGN_COPY_TEEP2BEEP:
						case TDA7541_ALIGN_COPY_BEEP2TEEP:
							Align.SubMode=TDA7541_ALIGN_COPY_STANDBY;
							Align.SubStep=TDA7541_ALIGN_COPY_SELECT_TREG2TEEPFM;
							break;
						#endif
					}
					break;

			case ALIGN_OTHER:
				switch(Align.SubStep)
				{
					case 2:
						Align.Mode=ALIGN_STANDBY;
						Align.SubMode=ALIGN_SELECT_AUTO;
						break;
				}
				break;
			}
			Align.F_DispReq=1;
			break;
			
		case S_AD_EXIT:
			switch(Align.Mode)
			{
				case ALIGN_AUTOALIGN:
					Align.Mode=ALIGN_STANDBY;
					Align.SubMode=ALIGN_SELECT_AUTO;
					break;

				case ALIGN_MANUALIGN:
					switch(Align.SubMode)
					{
					#if TDA7540Tuner
						case ALIGN_MANU_STANDBY:
							Align.Mode=ALIGN_STANDBY;
							Align.SubMode=ALIGN_SELECT_AUTO;
						break;

						case ALIGN_MANU_XTAL:
						case ALIGN_MANU_FMSLIDER:
						case ALIGN_MANU_FMSTOP:
						case ALIGN_MANU_FMMUTE:
						case ALIGN_MANU_ROLLOFF:
						case ALIGN_MANU_STBLEND:
						case ALIGN_MANU_VHCL:
						case ALIGN_MANU_VHCH:
						case ALIGN_MANU_HIGHCUT:
						case ALIGN_MANU_FMDEMOD:
						case ALIGN_MANU_IFGAIN:
						case ALIGN_MANU_AMAGC:
						case ALIGN_MANU_IFCOUNT:
							Align.SubMode=ALIGN_MANU_STANDBY;
							Align.SubStep=ALIGN_MANU_SELECT_XTAL;
							break;
					#endif
					#if TDA7541Tuner
						case TDA7541_ALIGN_MANU_STANDBY:
							Align.Mode=ALIGN_STANDBY;
							Align.SubMode=ALIGN_SELECT_AUTO;
						break;

						case TDA7541_ALIGN_MANU_XTAL:
						case TDA7541_ALIGN_MANU_FMSLIDER:
						case TDA7541_ALIGN_MANU_FMSTOP:
						case TDA7541_ALIGN_MANU_FMMUTE:
						case TDA7541_ALIGN_MANU_ROLLOFF:
						case TDA7541_ALIGN_MANU_STBLEND:
						case TDA7541_ALIGN_MANU_VHCL:
						case TDA7541_ALIGN_MANU_VHCH:
						case TDA7541_ALIGN_MANU_HIGHCUT:
							Align.SubMode=TDA7541_ALIGN_MANU_STANDBY;
							Align.SubStep=TDA7541_ALIGN_MANU_SELECT_XTAL;
							break;
					#endif
					}
					break;

				case ALIGN_EEPROM:
					switch(Align.SubMode)
					{
						case ALIGN_EEPROM_STANDBY:
							Align.Mode=ALIGN_STANDBY;
							Align.SubMode=ALIGN_SELECT_AUTO;
						break;

						case ALIGN_EEPROM_TUNER:
						case ALIGN_EEPROM_BOARD:
							Align.SubMode=ALIGN_EEPROM_STANDBY;
							Align.SubStep=ALIGN_EEPROM_SELECT_TUNER;
							Flash(0,0);
							break;
					}
					break;

				case ALIGN_TUNERREG:
					Align.Mode=ALIGN_STANDBY;
					Align.SubMode=ALIGN_SELECT_AUTO;
					Flash(0,0);
					break;

				case ALIGN_COPY:
					switch(Align.SubMode)
					{
					#if TDA7540Tuner
						case ALIGN_COPY_STANDBY:
							Align.Mode=ALIGN_STANDBY;
							Align.SubMode=ALIGN_SELECT_AUTO;
						break;

						case ALIGN_COPY_TREG2TEEP:
						case ALIGN_COPY_TREG2BEEP:
						case ALIGN_COPY_TEEP2TREG:
						case ALIGN_COPY_TEEP2BEEP:
						case ALIGN_COPY_BEEP2TREG:
						case ALIGN_COPY_BEEP2TEEP:
							if(Align.SubStep==2)
							{
								Align.SubMode=ALIGN_COPY_STANDBY;
								Align.SubStep=ALIGN_COPY_SELECT_TREG2TEEP;
							}
							break;
					#endif
						
					#if TDA7541Tuner
						case TDA7541_ALIGN_COPY_STANDBY:
							Align.Mode=ALIGN_STANDBY;
							Align.SubMode=ALIGN_SELECT_AUTO;
						break;
						case TDA7541_ALIGN_COPY_TREG2TEEPFM:
						case TDA7541_ALIGN_COPY_TREG2BEEPFM:
						case TDA7541_ALIGN_COPY_TEEP2TREG:
						case TDA7541_ALIGN_COPY_BEEP2TREG:
						case TDA7541_ALIGN_COPY_TREG2TEEPAM:
						case TDA7541_ALIGN_COPY_TREG2BEEPAM:
						case TDA7541_ALIGN_COPY_TEEP2BEEP:							
						case TDA7541_ALIGN_COPY_BEEP2TEEP:
							if(Align.SubStep==2)
							{
								Align.SubMode=TDA7541_ALIGN_COPY_STANDBY;
								Align.SubStep=TDA7541_ALIGN_COPY_SELECT_TREG2TEEPFM;
							}
							break;
					#endif						
					}
					break;

			case ALIGN_OTHER:
				switch(Align.SubStep)
				{
					case 2:
						Align.Mode=ALIGN_STANDBY;
						Align.SubMode=ALIGN_SELECT_AUTO;
						break;
				}
				break;
			}
			Align.F_DispReq=1;
			break;
							
		case S_AD_AUTOALING:
			Align.Mode=ALIGN_AUTOALIGN;
			Align.SubMode=ALIGN_AUTO_STANDBY;
			Align.SubStep=0;
			Flash(0,0);
			Align.F_DispReq=1;
			break;

		case S_AD_MANUALIGN:
			Align.Mode=ALIGN_MANUALIGN;
			#if TDA7540Tuner
			Align.SubMode=ALIGN_MANU_STANDBY;
			Align.SubStep=ALIGN_MANU_SELECT_XTAL;
			#endif
			#if TDA7541Tuner
			Align.SubMode=TDA7541_ALIGN_MANU_STANDBY;
			Align.SubStep=TDA7541_ALIGN_MANU_SELECT_XTAL;
			#endif
			Flash(0,0);
			Align.F_DispReq=1;
			break;

		case S_AD_EEPROM:
			Align.Mode=ALIGN_EEPROM;
			Align.SubMode=ALIGN_EEPROM_STANDBY;
			Align.SubStep=ALIGN_EEPROM_SELECT_TUNER;
			Flash(0,0);
			Align.F_DispReq=1;
			break;

		case S_AD_TUNERREG:
			Align.Mode=ALIGN_TUNERREG;
			Align.SubStep=0;
			Align.EditPos=1;
			Flash(0,0);
			Align.F_DispReq=1;
			break;

		//case S_AD_NC:
		//	if(!O_J2)break;//yete: delete this function: This function's purpose is to align with the real atmosphere station
			//Align.Mode=ALIGN_OTHER;
			//Align.SubStep=0;
			//Flash(0,0);
			//Align.F_DispReq=1;
			//break;

		case L_AD_NC:
			F_ShowVersion=~F_ShowVersion;
			if(F_ShowVersion)
			{
			#if TDA7540Tuner
				PrintLine2("  Version 1.5");
				PrintAnimation("ST Shenzhen CRM  -- This good job is done by Jane, Paul, Perry and Yete.");
				Animation(ANIMATION_START, AniBuff,20);
			#endif
			#if TDA7541Tuner
				PrintLine2("FST08 JIG Ver1.0");
				PrintAnimation("ST Shenzhen CRM");
				Animation(ANIMATION_START, AniBuff,20);
			#endif
			}
			else
			{
				Animation(ANIMATION_STOP);
				Align.F_DispReq=1;
			}
			break;
	}
	
}

void AlignWork(void)
{
	unsigned char i,j,temp,temp2,temp3;
	unsigned int ii;

	if(Align.Timer>0)return;
	
	switch(Align.Mode)
	{
	
		case ALIGN_AUTOALIGN:

		#if TDA7540Tuner
			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<70;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[23] &= 0x0F;
							RadioTunerSend(23,23);
							Align.SubStep=1;
							break;
						case 1:
							
							break;
					}
					break;
					
				case ALIGN_AUTO_XTAL:
					switch(Align.SubStep)
					{
						case 0:
							for(i=0;i<32;i++)
							{

⌨️ 快捷键说明

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