亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? radiomoduleapi.c

?? SI47**系列DSP的收音芯片驅動C源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
//***************************************************************
//  ARM BOOT ROUTE VER1.0 for NXP_ARM release
//  bjwork2007@gmail.com
//  chenjun @ 2008-7-19
//***************************************************************

#include "..\inc\usart.h"
#include "..\inc\common.h"
#include "..\inc\NXP_ARM.h"
#include "..\inc\RadioModuleTypeDEF.h"
#include "..\inc\RadioModuleHwDrv.h"
#include "..\inc\RadioModuleSwCmd.h"
#include "..\inc\RadioModuleAPI.h"
#include "..\inc\RadioModuleGUI.h"
#include "..\inc\RadioModuleRDSAPI.h"

#ifdef UseSI473X_Radio

	RM_U16 FM_Band_Top;
	RM_U16 FM_Band_Bottom;
	RM_U16 FM_Region_Deemphasis;
	RM_U16 FM_Seek_Space;
	RM_U16 AM_Band_Top;
	RM_U16 AM_Band_Bottom;	
	RM_U16 AM_Region_Deemphasis;
	RM_U16 AM_Seek_Space;
	RM_U8  AM_FM_Receive_SEL;
	RM_U8  AM_FM_Receive_Region;
	RM_U32 FM_RDS_VAL_F;
	
	FMSeekStruct FMChannelArray[MaxStationNum];
	FMGetSetupInfoStruct FMGetSetupInfo;
	AMSeekStruct AMChannelArray[MaxStationNum];
	AMGetSetupInfoStruct AMGetSetupInfo;
	
	void SetReceiveRegion(RM_U8 RegionCode)
	{
		AM_FM_Receive_Region = RegionCode;
		FM_RDS_VAL_F = 0;
		switch(AM_FM_Receive_Region)
		{
			case China:
				FM_Band_Top = 10800;//108.0MHz
				FM_Band_Bottom = 8750;//87.5MHz
				FM_Region_Deemphasis = 0x01;//50us
				FM_Seek_Space = 10;//100KHz
				AM_Band_Top = 1710;//1710KHz
				AM_Band_Bottom = 522;//522KHz
				AM_Region_Deemphasis = 0x01;//50us
				AM_Seek_Space = 9;//9KHz
				break;
			case Europe:
				FM_Band_Top = 10800;//108.0MHz
				FM_Band_Bottom = 8750;//87.5MHz
				FM_Region_Deemphasis = 0x01;//50us
				FM_Seek_Space = 10;//100KHz
				AM_Band_Top = 1710;//1710KHz
				AM_Band_Bottom = 520;//520KHz
				AM_Region_Deemphasis = 0x01;//50us
				AM_Seek_Space = 10;//10KHz
				break;
			case Japan:
				FM_Band_Top = 10800;//108.0MHz
				FM_Band_Bottom = 7600;//76.0MHz
				FM_Region_Deemphasis = 0x01;//50us
				FM_Seek_Space = 10;//100KHz
				AM_Band_Top = 1710;//1710KHz
				AM_Band_Bottom = 522;//522KHz
				AM_Region_Deemphasis = 0x01;//50us
				AM_Seek_Space = 9;//9KHz
				break;
			case USA:
				FM_Band_Top = 10800;//108.0MHz
				FM_Band_Bottom = 8750;//87.5MHz
				FM_Region_Deemphasis = 0x02;//75us
				FM_Seek_Space = 10;//100KHz
				AM_Band_Top = 1710;//1710KHz
				AM_Band_Bottom = 520;//520KHz
				AM_Region_Deemphasis = 0x00;//50us
				AM_Seek_Space = 10;//10KHz
				break;
			default:break;
		}
	}
	
	RM_U8 Set_OSC_Frequence(RM_U16 OSC_Frequence)
	{
		return RadioModule_Set_Prop(Prop_REFCLK_FREQ,OSC_Frequence);
	}
	
	RM_U8 Set_FM_Seek_Band(RM_U16 Band_Top,RM_U16 Band_Bottom)
	{
		RM_U8 Status;
		
		Status = RadioModule_Set_Prop(Prop_FM_SEEK_BAND_TOP,Band_Top);
		if(Status != OK)
			return Status;
		Status = RadioModule_Set_Prop(Prop_FM_SEEK_BAND_B0T,Band_Bottom);
		
		return Status;
	}
	
	RM_U8 Set_FM_Seek_Space(RM_U16 FM_Seek_Freq_Space)
	{
		return RadioModule_Set_Prop(Prop_FM_SEEK_FREQ_SPA,FM_Seek_Freq_Space);
	}
	
	RM_U8 Set_FM_Seek_RSSI_TD(RM_U16 FM_Seek_Rssi_TD)
	{
		return RadioModule_Set_Prop(Prop_FM_SEEK_TUNE_RSSI_TD,FM_Seek_Rssi_TD);
	}
		
	RM_U8 Set_FM_Seek_SNR_TD(RM_U16 FM_Seek_Snr_TD)
	{
		return RadioModule_Set_Prop(Prop_FM_SEEK_TUNE_SNR_TD,FM_Seek_Snr_TD);
	}
	
	RM_U8 Set_FM_Deemphasis(RM_U16 FM_Deemphasis)
	{
		return RadioModule_Set_Prop(Prop_FM_DEEMPHASIS,FM_Deemphasis);
	}
	
	RM_U8 Set_FM_RSSI_TD(RM_U16 RSSIHT,RM_U16 RSSILT)
	{
		RM_U8 Status;
		
		Status = RadioModule_Set_Prop(Prop_FM_RSQ_RSSI_HI_TD,(RSSIHT & 0x7f));
		if(Status!=OK)
			return Status;
		return RadioModule_Set_Prop(Prop_FM_RSQ_RSSI_LO_TD,(RSSILT & 0x7f));
	}
	
	RM_U8 Set_FM_SNR_TD(RM_U16 SNRHT,RM_U16 SNRLT)
	{
		RM_U8 Status;
		
		Status = RadioModule_Set_Prop(Prop_FM_RSQ_SNR_HI_TD,(SNRHT & 0x7f));
		if(Status!=OK)
			return Status;
		return RadioModule_Set_Prop(Prop_FM_RSQ_SNR_LO_TD,(SNRLT & 0x7f));
	}
	
	RM_U8 Set_FM_Steror_Mono_TD(RM_U16 ST_RSSI_TD,RM_U16 MO_RSSI_TD)
	{
		RM_U8 Status;
		
		Status = RadioModule_Set_Prop(Prop_FM_BLEND_STEREO_TD,(ST_RSSI_TD & 0x7f));
		if(Status!=OK)
			return Status;
		return RadioModule_Set_Prop(Prop_FM_BLEND_MONO_TD,(MO_RSSI_TD & 0x7f));
	}
	
	RM_U8 Get_FM_Setup_TD_Info(void)
	{
		RM_U8 Status;
		RM_U16	Temp;
		
		Status = RadioModule_Get_Prop(Prop_FM_SEEK_TUNE_SNR_TD,(RM_U16 *)(&Temp));
		if(Status!=OK)
			return Status;
		FMGetSetupInfo.FM_SEEK_SNR_TD = Temp;
		
		Status = RadioModule_Get_Prop(Prop_FM_SEEK_TUNE_RSSI_TD,(RM_U16 *)(&Temp));
		if(Status!=OK)
			return Status;
		FMGetSetupInfo.FM_SEEK_RSSI_TD = Temp;
		
		Status = RadioModule_Get_Prop(Prop_FM_SEEK_FREQ_SPA,(RM_U16 *)(&Temp));
		if(Status!=OK)
			return Status;
		FMGetSetupInfo.FM_SEEK_SPACE = Temp;
		
		Status = RadioModule_Get_Prop(Prop_FM_DEEMPHASIS,(RM_U16 *)(&Temp));
		if(Status!=OK)
			return Status;
		FMGetSetupInfo.FM_DEEMPHASIS = Temp;
		
		Status = RadioModule_Get_Prop(Prop_FM_BLEND_STEREO_TD,(RM_U16 *)(&Temp));
		if(Status!=OK)
			return Status;
		FMGetSetupInfo.FM_ST_RSSI_TD = Temp;
		
		Status = RadioModule_Get_Prop(Prop_FM_BLEND_MONO_TD,(RM_U16 *)(&Temp));
		if(Status!=OK)
			return Status;
		FMGetSetupInfo.FM_MO_RSSI_TD = Temp;
		
		return OK;
	}
		
	RM_U8 Set_FM_RSQ_BLEND_TD(RM_U8 EnPilotInd, RM_U8 BLEND_TD)
	{
		RM_U16 CmdPara_U16;
		
		CmdPara_U16 = (RM_U16)(BLEND_TD & 0x7f);
		if(EnPilotInd!=0)
			CmdPara_U16 |= 0x0080;
		return RadioModule_Set_Prop(Prop_FM_RSQ_BLEND_TD,CmdPara_U16);
	}
	
	
	
	RM_U8 Rds_Enable(void)
	{
		RM_U8 Status;
		
		Status = RadioModule_Set_Prop(Prop_RDS_INT_SOURCE,0x0007);//select RDS interrupt source
		if(Status != OK)
			return Status;
			
		Status = RadioModule_Set_Prop(Prop_RDS_INT_FIFO_COUNT,0x000a);//enable RDS fifo count
		if(Status != OK)
			return Status;
			
		Status = RadioModule_Set_Prop(Prop_GPO_IEN,0x0004);//enable RDS interrupt
		if(Status != OK)
			return Status;
		
		Status = RadioModule_FM_RDS_Status(FM_Empty_RDS_FIFO|FM_Clr_RDS_Int);//clear rds fifo
		if(Status != OK)
			return Status;
		
		Status = RadioModule_Set_Prop(Prop_RDS_CONFIG,0x0001);//enable RDS 
		if(Status != OK)
			return Status;
			
		return OK;
	}
	
	RM_U8 Rds_Disable(void)
	{
		return RadioModule_Set_Prop(Prop_RDS_CONFIG,0x0000);//enable RDS 
	}
	
	RM_U8 Get_Rds_Status(void)
	{
		RM_U8 Status;
		
		Status = RadioModule_FM_RDS_Status(FM_Clr_RDS_Int);
		if(Status != OK)
			return Status;
		return Status;
	}
	
	RM_U8 RDS_ISR(void)
	{
		RM_U8 IntStatus;
		RM_U8 Status;
		RM_U8 Group_Count;
		RM_U8 RDSDataAddr;
		FmRDSDataStruct RDSDataArray[12];
		#ifdef RDS_Data_Console_Debug
			RM_U8 i;
		#endif
		
		Status = RadioModule_Get_Int_Status((RM_U8 *)(&IntStatus));
		if(Status != OK)
			return Status;
		
		RDSDataAddr = 0;
		
		if((IntStatus & 0x04)!=0)	
		{
			Status = RadioModule_FM_RDS_Status(FM_RDS_Status_Only);
			if(Status != OK)
				return Status;
			
			FM_RDS_VAL_F = 0;
						
			if((FmRDSStatusInfo.Resp1 & 0x02)==0x02)//RDS_LOST_SYNC
			{
				FmRDSStatusInfo.Resp1 &= 0x01; 
			}
				
			if((FmRDSStatusInfo.Resp1 & 0x04)!=0)	//RDS_SYNC
			{
				FM_RDS_VAL_F |= RDS_SYNC;
			}					
				
			if((FmRDSStatusInfo.Resp1 & 0x01)!=0)	//RDSRECV
			{
				Group_Count = FmRDSStatusInfo.RDS_FIFO_Used;
				
				if(Group_Count != 0)
				{					
					if(Set_RDS_Data((RM_U8 *)(&FmRDSStatusInfo.BlockA_H),(FmRDSDataStruct *)(&RDSDataArray[RDSDataAddr]))==OK)
						RDSDataAddr++;
					Group_Count--;
					
					while(Group_Count != 0)
					{
						Status = RadioModule_FM_RDS_Status(FM_RDS_Status_Only);
						if(Status != OK)
							return Status;
						if(Set_RDS_Data((RM_U8 *)(&FmRDSStatusInfo.BlockA_H),(FmRDSDataStruct *)(&RDSDataArray[RDSDataAddr]))==OK)
							RDSDataAddr++;
						Group_Count--;
					}
				}
			}
			Status = RadioModule_FM_RDS_Status(FM_Clr_RDS_Int);
			if(Status != OK)
				return Status;
		
			#ifdef RDS_Data_Console_Debug
				if(RDSDataAddr!=0) 
					putch('\n');
				for(i=0;i<RDSDataAddr;i++)
				{
					printf("%.4x . %.4x . %.4x . %.4x\n",RDSDataArray[i].BlockA,
														 RDSDataArray[i].BlockB,
														 RDSDataArray[i].BlockC,
														 RDSDataArray[i].BlockD);	
				}
				if(RDSDataAddr!=0) 
					puts("end of RDS_ISR\n\n");
			#else
				RDS_Data_Proc(RDSDataArray,RDSDataAddr);
			#endif
			
		}		
		return Status;
	}
	
	RM_U8 Set_AM_Seek_Band(RM_U16 Band_Top,RM_U16 Band_Bottom)
	{
		RM_U8 Status;
		
		Status = RadioModule_Set_Prop(Prop_AM_SEEK_BAND_TOP,Band_Top);
		if(Status != OK)
			return Status;
		Status = RadioModule_Set_Prop(Prop_AM_SEEK_BAND_B0T,Band_Bottom);
		
		return Status;
	}
	
	RM_U8 Set_AM_Deemphasis(RM_U16 AM_Deemphasis)
	{
		return RadioModule_Set_Prop(Prop_AM_DEEMPHASIS,AM_Deemphasis);
	}
	
	RM_U8 Set_AM_Seek_Space(RM_U16 AM_Seek_Freq_Space)
	{
		return RadioModule_Set_Prop(Prop_AM_SEEK_FREQ_SPA,AM_Seek_Freq_Space);
	}
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
石原莉奈在线亚洲二区| 国产suv一区二区三区88区| 久久99精品久久久久久| 99久久精品99国产精品| 日韩一二三四区| 亚洲乱码精品一二三四区日韩在线| 美女视频一区二区| 欧美亚洲丝袜传媒另类| 国产亚洲一区二区三区在线观看| 亚洲大尺度视频在线观看| 99在线视频精品| 久久综合国产精品| 三级精品在线观看| 色视频欧美一区二区三区| 国产欧美一区二区精品久导航 | av一区二区久久| 91精品国产色综合久久不卡蜜臀 | 精品国产乱码久久久久久免费 | 国产精品一区二区黑丝| 91麻豆精品国产综合久久久久久| 亚洲精品国产精华液| 成人动漫一区二区| 久久综合国产精品| 另类成人小视频在线| 欧美久久高跟鞋激| 亚洲成人自拍偷拍| 欧美性色黄大片| 亚洲人成影院在线观看| 成人a免费在线看| 亚洲国产精品ⅴa在线观看| 国产一区二区三区在线观看免费| 精品三级在线观看| 精品一区二区日韩| 精品国产一区二区三区四区四| 人人精品人人爱| 欧美日韩激情一区二区| 午夜免费久久看| 欧美日本在线观看| 日日夜夜免费精品| 欧美日韩精品欧美日韩精品| 亚洲国产一二三| 欧美亚洲动漫另类| 美女视频一区在线观看| 久久九九久久九九| 成人va在线观看| 成人欧美一区二区三区白人 | 国产91丝袜在线观看| 国产精品免费av| 色综合天天性综合| 亚洲成av人影院| 欧美zozo另类异族| 国产.欧美.日韩| 亚洲欧美激情插| 欧美日韩日日骚| 久久国产精品无码网站| 国产亚洲成aⅴ人片在线观看| 不卡大黄网站免费看| 亚洲男人天堂av网| 欧美一区二区三区精品| 国产成人精品影视| 一区二区在线观看视频| 欧美酷刑日本凌虐凌虐| 国产乱码精品一区二区三区五月婷| 中文字幕第一区| 欧美日韩精品欧美日韩精品| 国产在线看一区| 亚洲视频香蕉人妖| 538prom精品视频线放| 国产精品1区2区| 亚洲午夜影视影院在线观看| 久久亚洲免费视频| 在线亚洲人成电影网站色www| 亚洲gay无套男同| 中文字幕免费不卡| 欧美精品第1页| 不卡av免费在线观看| 日一区二区三区| 亚洲欧洲美洲综合色网| 日韩欧美一级二级三级久久久| 91丨九色丨蝌蚪丨老版| 天堂一区二区在线| 18欧美亚洲精品| 欧美mv日韩mv亚洲| 欧美精品日韩一本| 波多野结衣中文字幕一区| 青草国产精品久久久久久| 亚洲欧洲国产日韩| 日韩免费性生活视频播放| 色狠狠色噜噜噜综合网| 岛国av在线一区| 蜜臀av性久久久久蜜臀aⅴ| 一二三区精品视频| 国产精品久久夜| 久久精品欧美日韩精品| 日韩视频免费观看高清完整版 | 欧美精品色一区二区三区| 91一区二区在线| 国产成人精品1024| 精品一区二区三区在线观看国产| 亚洲综合激情网| 亚洲天堂精品视频| 中文字幕av资源一区| 久久丝袜美腿综合| 欧美www视频| 欧美岛国在线观看| 日韩精品一区二区三区蜜臀| 欧美日韩国产123区| 精品视频1区2区| 91美女在线视频| 99re6这里只有精品视频在线观看| 国产一区二区伦理| 国精产品一区一区三区mba视频| 日韩不卡免费视频| 日本不卡视频在线观看| 日本欧美在线看| 免费观看日韩电影| 精品一区二区三区在线观看 | 日韩av中文字幕一区二区三区| 亚洲一区中文在线| 一区二区三区久久久| 亚洲久本草在线中文字幕| 亚洲国产成人私人影院tom| 国产精品久久久一本精品| 国产精品卡一卡二| 自拍偷拍亚洲综合| 亚洲美女电影在线| 最新不卡av在线| 亚洲精品中文字幕乱码三区| 一区二区三区精密机械公司| 亚洲一区在线观看视频| 日韩电影在线免费| 国产精品888| 97超碰欧美中文字幕| 91福利在线看| 正在播放一区二区| 久久综合色8888| 自拍偷在线精品自拍偷无码专区 | 亚洲三级视频在线观看| 亚洲精选视频免费看| 亚洲最大成人网4388xx| 日本在线不卡视频一二三区| 久久福利资源站| 大胆亚洲人体视频| 欧美怡红院视频| 欧美一级午夜免费电影| 中文字幕成人av| 亚洲黄色免费网站| 麻豆精品视频在线观看免费| 成人午夜av电影| 欧美综合久久久| 日韩亚洲欧美在线观看| 国产精品不卡一区| 日韩精品一级二级| 国产风韵犹存在线视精品| 在线观看视频一区二区欧美日韩| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品国产三级国产有无不卡| 一区二区三区91| 国产乱码字幕精品高清av| 日本黄色一区二区| 欧美成人精品高清在线播放| 中文字幕一区二区三区不卡| 日本不卡高清视频| 日本韩国精品在线| 精品国产三级a在线观看| 亚洲丝袜制服诱惑| 国产乱子伦视频一区二区三区 | 欧美男生操女生| 国产精品久久久久久久岛一牛影视| 午夜av区久久| 不卡视频一二三四| 久久久久久久久伊人| 午夜精品爽啪视频| 日本二三区不卡| 国产欧美一区二区精品性色| 日本伊人色综合网| 日本道色综合久久| 日本一区二区三区四区| 久久99精品久久久久婷婷| 欧美日本国产视频| 一区二区在线观看av| 成人av影院在线| 国产欧美日韩视频在线观看| 玖玖九九国产精品| 91麻豆精品国产91久久久资源速度| 亚洲欧美激情视频在线观看一区二区三区 | 国产精品国产三级国产a| 国产综合色精品一区二区三区| 欧美自拍偷拍一区| 亚洲人xxxx| 成人动漫精品一区二区| 国产区在线观看成人精品| 免费的成人av| 欧美肥妇free| 日韩高清不卡在线| 制服丝袜亚洲网站| 美腿丝袜亚洲三区| 日韩欧美国产wwwww| 久久精品国产99国产精品| 日韩西西人体444www|