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

📄 radiomodulegui.c

📁 SI47**系列DSP的收音芯片驱动C源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
			if((RDS_flag & RDS_M_S_F)!=0)
				LCD_printf(117,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"M/S");
			else
				LCD_printf(117,80+2,Unuse_Color,0,AlignLeft,True,False,"M/S");
				
			if((RDS_flag & RDS_PIN_F)!=0)
				LCD_printf(138,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"PIN");
			else
				LCD_printf(138,80+2,Unuse_Color,0,AlignLeft,True,False,"PIN");
				
			if((RDS_flag & RDS_RT_F)!=0)
				LCD_printf(159,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"RT");
			else
				LCD_printf(159,80+2,Unuse_Color,0,AlignLeft,True,False,"RT");
				
			if((RDS_flag & RDS_EON_F)!=0)
				LCD_printf(174,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"EON");
			else
				LCD_printf(174,80+2,Unuse_Color,0,AlignLeft,True,False,"EON");
				
			if((RDS_flag & RDS_TDC_F)!=0)
				LCD_printf(195,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"TDC");
			else
				LCD_printf(195,80+2,Unuse_Color,0,AlignLeft,True,False,"TDC");
				
			if((RDS_flag & RDS_IH_F)!=0)
				LCD_printf(216,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"IH");
			else
				LCD_printf(216,80+2,Unuse_Color,0,AlignLeft,True,False,"IH");
				
			if((RDS_flag & RDS_CT_F)!=0)
				LCD_printf(231,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"CT");
			else
				LCD_printf(231,80+2,Unuse_Color,0,AlignLeft,True,False,"CT");
				
			if((RDS_flag & RDS_RP_F)!=0)
				LCD_printf(246,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"RP");
			else
				LCD_printf(246,80+2,Unuse_Color,0,AlignLeft,True,False,"RP");
				
			if((RDS_flag & RDS_EWS_F)!=0)
				LCD_printf(261,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"EWS");
			else
				LCD_printf(261,80+2,Unuse_Color,0,AlignLeft,True,False,"EWS");
				
			if((RDS_flag & RDS_TMC_F)!=0)
				LCD_printf(282,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"TMC");
			else
				LCD_printf(282,80+2,Unuse_Color,0,AlignLeft,True,False,"TMC");
				
			if((RDS_flag & RDS_LN_F)!=0)
				LCD_printf(303,80+2,RDS_Flag_Color,0,AlignLeft,True,False,"LN");
			else
				LCD_printf(303,80+2,Unuse_Color,0,AlignLeft,True,False,"LN");	
		}		
	}
	
	void Lcd_disp_sys_time(void)
	{
		RM_U8 Tmp[8];
		
		GetRTC(Tmp);
		if(Pre_Second != Tmp[0])
		{
			Pre_Second = Tmp[0];
			LCD_printf(6,2,System_time_Color,Title_Bk_Color,AlignLeft,False,False,"%.4d-%.2d-%.2d",((unsigned short)Tmp[7]<<8)|Tmp[6],Tmp[5],Tmp[4]);
			LCD_printf(315,2,System_time_Color,Title_Bk_Color,AlignRight,False,False,"%.2d:%.2d:%.2d",Tmp[2],Tmp[1],Tmp[0]);
		}
	}
		
	void Lcd_disp_title(RM_U16 YStart,RM_U16 Fr_Color,RM_U16 Bk_Color,char *String)
	{
		RM_DrawColorWindow(Bk_Color,0,YStart,320,16);
		LCD_printf(160,YStart+2,Fr_Color,Bk_Color,AlignCenter,False,False,String);
	}
		
	void Lcd_disp_freq(RM_U16 Freq,RM_U8 FreqOffset)
	{
		RM_U8 i;
		RM_S8 j;
		RM_U8 FreqBit;
		RM_U16 FreqCopy;
		RM_U8 FreqOffsetCopy;
		RM_U32 FreqMul;
				
		FreqCopy = Freq;
		
		if(FreqCopy>=6500)
		{
			if(PreFreq!=Freq)
			{		
				RM_DrawColorWindow(Freq_Bk_Color,0,32,126,32);
				PreFreq = Freq;
				if(FreqCopy>9999)
				{	
					Lcd_put_Freq_Char(22,36,Freq_Fr_Color,Freq_Bk_Color,1,False);
					FreqCopy -= 10000;
				}
				for(i=0;i<4;i++)
				{
					FreqMul = 1;
					for(j=0;j<(3-i);j++)
					{
						FreqMul *= 10;
					}
					FreqBit = FreqCopy / FreqMul;
					FreqCopy -= FreqMul*FreqBit;
					if(i!=1)
					{
						Lcd_put_Freq_Char(38+(16*i),36,Freq_Fr_Color,Freq_Bk_Color,FreqBit,False);
					}
					else
					{
						Lcd_put_Freq_Char(38+(16*i),36,Freq_Fr_Color,Freq_Bk_Color,FreqBit,True);
					}
				}
				
				LCD_printf(38+(16*i),50,Freq_Fr_Color,Freq_Bk_Color,AlignLeft,False,False,"MHz");
			}
			
			if(PreFreqOffset!=FreqOffset)
			{	
				RM_DrawColorWindow(Freq_Bk_Color,126,32,98,32);
				PreFreqOffset = FreqOffset;
				if((FreqOffset & 0x80) != 0)
				{
					LCD_printf(126,43,Freq_Fr_Color,Freq_Bk_Color,AlignLeft,False,False,"-");
				}
				else
				{
					LCD_printf(126,43,Freq_Fr_Color,Freq_Bk_Color,AlignLeft,False,False,"+");
				}
				FreqOffsetCopy = FreqOffset;
				
				if((FreqOffsetCopy & 0x80) != 0)
					FreqOffsetCopy = ((~FreqOffset) + 1) & 0xff;
					
				for(i=0;i<2;i++)
				{
					if(i==1)
						FreqMul = 1;
					else
						FreqMul = 10;
					FreqBit = FreqOffsetCopy / FreqMul;
					FreqOffsetCopy -= FreqMul*FreqBit;
					Lcd_put_Freq_Char(134+(16*i),36,Freq_Fr_Color,Freq_Bk_Color,FreqBit,False);
				}
				LCD_printf(134+(16*i),50,Freq_Fr_Color,Freq_Bk_Color,AlignLeft,False,False,"KHz");
			}
		}
		else
		{
			if(PreFreq!=Freq)
			{	
				RM_DrawColorWindow(Freq_Bk_Color,0,32,224,32);
				PreFreq = Freq;
				if((FreqCopy<=1710) && (FreqCopy>=520))
				{
					if(FreqCopy>999)
					{
						Lcd_put_Freq_Char(70,36,Freq_Fr_Color,Freq_Bk_Color,1,False);
						FreqCopy -= 1000;
					}
					for(i=0;i<3;i++)
					{
						FreqMul = 1;
						for(j=0;j<(2-i);j++)
						{
							FreqMul *= 10;
						}
						FreqBit = FreqCopy / FreqMul;
						FreqCopy -= FreqMul*FreqBit;
						Lcd_put_Freq_Char(86+(16*i),36,Freq_Fr_Color,Freq_Bk_Color,FreqBit,False);
					}
					LCD_printf(86+(16*i),50,Freq_Fr_Color,List_2_Color,AlignLeft,False,False,"KHz");
				}
			}
		}
	}
	
	void Lcd_disp_stereo_flag(RM_U8 FM_ST_F)
	{
		if(Pre_FM_ST_F!=FM_ST_F)
		{
			Pre_FM_ST_F = FM_ST_F;
			RM_DrawColorWindow(List_1_Color,224,32,50,16);
			if(FM_ST_F==Stereo_F)
			{
				LCD_printf(230,34,FM_S_INFO_Fr_Color,Level_0_Color,AlignLeft,True,False,"Stereo");
			}
			else
			{
				LCD_printf(230,34,Title_Fr_Color,List_1_Color,AlignLeft,True,False,"Mono");
			}
		}
	}
	
	void Lcd_disp_Region_flag(void)
	{	
		RM_DrawColorWindow(List_1_Color,274,32,46,16);
		switch(AM_FM_Receive_Region)
		{
			case China:
				LCD_printf(276,34,FM_S_INFO_Fr_Color,Level_0_Color,AlignLeft,True,False,"China");break;
			case Europe:
				LCD_printf(276,34,FM_S_INFO_Fr_Color,Level_0_Color,AlignLeft,True,False,"Europe");break;
			case Japan:
				LCD_printf(276,34,FM_S_INFO_Fr_Color,Level_0_Color,AlignLeft,True,False,"Japan");break;
			case USA:
				LCD_printf(276,34,FM_S_INFO_Fr_Color,Level_0_Color,AlignLeft,True,False,"USA");break;
			default:break;
		}
		RM_DrawColorWindow(List_2_Color,224,48,96,16);
		if(AM_FM_Receive_SEL == FM_Receive)
			LCD_printf(230,50,FM_S_INFO_Fr_Color,List_2_Color,AlignLeft,False,False,"%d.%d-%d.%dMHz",FM_Band_Bottom/100,FM_Band_Bottom%100,FM_Band_Top/100,FM_Band_Top%100);
		else
			LCD_printf(230,50,FM_S_INFO_Fr_Color,List_2_Color,AlignLeft,False,False,"%d-%dKHz",AM_Band_Bottom,AM_Band_Top);
	}
	
	void Lcd_disp_Receiver_Setup_Info(void)
	{
		RM_U16 DEEMPHASIS_Time;
		
		if(AM_FM_Receive_SEL == FM_Receive)
		{
			Lcd_disp_title(64,Title_Fr_Color,Title_Bk_Color,"FM Seek Station Property & Stereo Switch Property");
			Get_FM_Setup_TD_Info();
			RM_DrawColorWindow(List_2_Color,0,80,320,16);
			LCD_printf(8,82,Level_1_Color,List_2_Color,AlignLeft,False,False,"Seek_SNR_TD: %.3d dB         Seek_RSSI_TD: %.3d dBuV",FMGetSetupInfo.FM_SEEK_SNR_TD,FMGetSetupInfo.FM_SEEK_RSSI_TD);
			RM_DrawColorWindow(List_1_Color,0,96,320,16);
			LCD_printf(8,98,Level_3_Color,List_1_Color,AlignLeft,False,False,"Stereo_RSSI_TD: %.3d dBuV",FMGetSetupInfo.FM_ST_RSSI_TD);
			LCD_printf(176,98,Level_2_Color,List_1_Color,AlignLeft,False,False,"Mono_RSSI_TD: %.3d dBuV",FMGetSetupInfo.FM_MO_RSSI_TD);
			RM_DrawColorWindow(List_2_Color,0,112,320,16);
			if(FMGetSetupInfo.FM_DEEMPHASIS == 0x01)
				DEEMPHASIS_Time = 50;
			else if(FMGetSetupInfo.FM_DEEMPHASIS == 0x02)
				DEEMPHASIS_Time = 75;
			else
				DEEMPHASIS_Time = 0;
			LCD_printf(8,114,Title_Fr_Color,List_2_Color,AlignLeft,False,False,"Seek_Space: %.d0 KHz         Deephasis: %d us",FMGetSetupInfo.FM_SEEK_SPACE,DEEMPHASIS_Time);
		}
		else
		{
			Lcd_disp_title(64,Title_Fr_Color,Title_Bk_Color,"AM Seek Station Property");	
			Get_AM_Setup_TD_Info();
			RM_DrawColorWindow(List_2_Color,0,80,320,16);
			if(AMGetSetupInfo.AM_DEEMPHASIS == 0x01)
				DEEMPHASIS_Time = 50;
			else
				DEEMPHASIS_Time = 0;
			LCD_printf(8,82,Level_3_Color,List_2_Color,AlignLeft,False,False,"Seek_SNR_TD: %.3d dB         Seek_RSSI_TD: %.3d dBuV",AMGetSetupInfo.AM_SEEK_SNR_TD,AMGetSetupInfo.AM_SEEK_RSSI_TD);
			RM_DrawColorWindow(List_1_Color,0,96,320,16);
			LCD_printf(8,98,Title_Fr_Color,List_1_Color,AlignLeft,False,False,"Seek_Space: %.d KHz           Deephasis: %d us",AMGetSetupInfo.AM_SEEK_SPACE,DEEMPHASIS_Time);
		}
	}
	
	void Lcd_disp_channel_Info(RM_U8 ChannelNo)
	{
		RM_DrawColorWindow(List_2_Color,0,16,62,16);
		LCD_printf(8,18,Title_Fr_Color,List_2_Color,AlignLeft,False,False,"CH:%.2d  ",ChannelNo);
	}	
		
	void Lcd_disp_RSSI_SNR_Info(RM_U8 RSSI_Val,RM_U8 SNR_Val)
	{
		RM_U16 RSSI_Color;
		RM_U16 SNR_Color;
		
		if(AM_FM_Receive_SEL == FM_Receive)
		{
			if(Pre_RSSI_Val!=RSSI_Val)
			{
				Pre_RSSI_Val = RSSI_Val;
				RM_DrawColorWindow(List_2_Color,68,16,84,16);
				if(RSSI_Val < FMGetSetupInfo.FM_SEEK_RSSI_TD)
					RSSI_Color = Level_0_Color;
				else if((RSSI_Val >= FMGetSetupInfo.FM_SEEK_RSSI_TD) && (RSSI_Val < FMGetSetupInfo.FM_MO_RSSI_TD))
					RSSI_Color = Level_1_Color;
				else if((RSSI_Val >= FMGetSetupInfo.FM_MO_RSSI_TD) && (RSSI_Val < FMGetSetupInfo.FM_ST_RSSI_TD))
					RSSI_Color = Level_2_Color;
				else
					RSSI_Color = Level_3_Color;					
				LCD_printf(68,18,RSSI_Color,List_2_Color,AlignLeft,False,False,"RSSI:%.3ddBuV",RSSI_Val);
				setled((unsigned char)(RSSI_Val & 0xff));
			}
			if(Pre_SNR_Val!=SNR_Val)
			{
				Pre_SNR_Val = SNR_Val;
				RM_DrawColorWindow(List_2_Color,170,16,66,16);
				if(SNR_Val < FMGetSetupInfo.FM_SEEK_SNR_TD)
					SNR_Color = Level_0_Color;
				else
					SNR_Color = Level_3_Color;		
				
				LCD_printf(170,18,SNR_Color,List_2_Color,AlignLeft,False,False,"SNR:%.3ddB",SNR_Val);
			}
		}
		else
		{
			if(Pre_RSSI_Val!=RSSI_Val)
			{
				Pre_RSSI_Val = RSSI_Val;
				RM_DrawColorWindow(List_2_Color,68,16,84,16);
				if(RSSI_Val < AMGetSetupInfo.AM_SEEK_RSSI_TD)
					RSSI_Color = Level_0_Color;
				else
					RSSI_Color = Level_3_Color;					
				LCD_printf(68,18,RSSI_Color,List_2_Color,AlignLeft,False,False,"RSSI:%.3ddBuV",RSSI_Val);
				setled((unsigned char)(RSSI_Val & 0xff));
			}
			if(Pre_SNR_Val!=SNR_Val)
			{
				Pre_SNR_Val = SNR_Val;
				RM_DrawColorWindow(List_2_Color,170,16,66,16);
				if(SNR_Val < AMGetSetupInfo.AM_SEEK_SNR_TD)
					SNR_Color = Level_0_Color;
				else
					SNR_Color = Level_3_Color;		
				LCD_printf(170,18,SNR_Color,List_2_Color,AlignLeft,False,False,"SNR:%.3ddB",SNR_Val);
			}
		}
	}
	
	void Lcd_disp_volume_Info(RM_U8 VOL_val,RM_U8 MuteMode)
	{
		if(MuteMode == HD_Mute_All)
		{
			if((Pre_RMVolume != VOL_val) || (Pre_MuteMode != MuteMode))
			{
				Pre_RMVolume = VOL_val;
				Pre_MuteMode = MuteMode;
				RM_DrawColorWindow(List_2_Color,254,16,60,16);
				LCD_printf(254,18,Title_Fr_Color,List_2_Color,AlignLeft,False,False,"M.M_Vol:%.2d",VOL_val);	
			}			
		}
		else
		{
			if((Pre_RMVolume != VOL_val) || (Pre_MuteMode != MuteMode))
			{
				Pre_RMVolume = VOL_val;
				Pre_MuteMode = MuteMode;
				RM_DrawColorWindow(List_2_Color,254,16,60,16);
				LCD_printf(254,18,Title_Fr_Color,List_2_Color,AlignLeft,False,False,"L.R_Vol:%.2d",VOL_val);	
			}			
		}
	}
	
	void InitLcdForRM(void)
	{
		RM_U8 i;
		
		LcdSetWindow(0,0,319,239);

⌨️ 快捷键说明

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