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

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

?? drv_nim_tuner.c

?? tunner驅動
?? C
字號:
/****************************************************************
*
* FILENAME
*	DRV_NIM.c
*
* PURPOSE 
*	EMMA2L Reference Model NIM Driver (Tuner Control)
*
* AUTHOR
*	Kenji.Matsuura
*
* DATE 
*	11/04/2002
*
* HISTORY 
*
*
*****************************************************************/

#include <stdio.h>
#include <string.h>

#include "COM.h"
#include "DRV_Internal.h"

#include "mmac/rtos.h"

#include "DRV_NIM.h"
#include "DRV_NIM_TUNER_Internal.h"
#include "DRV_NIM_QPSK_Internal.h"


/****************************************************************
*	External Valiables
****************************************************************/
extern BOOL	DRV_NIM_Initialized;
extern BOOL	DRV_NIM_QPSK_SetRegister(UI8 Reg,UI8 SetValue);
extern UI8	DRV_NIM_FreqAmendmentControl;					/* Frequency Amendment Control		*/


/*****************************************************************
*		Global Variables
*****************************************************************/
I32 DRV_NIM_TUNER_InterFrequency;			/* Intermeiate Frequency */




/*****************************************************************
*
* Function Name
*	DRV_NIM_TUNER_SetIF
*
* Prototype
*	DRV_NIM_RESULT DRV_NIM_TUNER_SetIF(
*		I32 Device,
*		I32 IntermeiateFrequency)
*
*
* Inputs
*	Device					:	NIM Device Number
*	IntermeiateFrequency	:	Intermeiate Frequency Value
*
* Outputs
*	None
*
* Return Codes
*	DRV_NIM_OK
*	DRV_NIM_NOT_INITIALIZED
*	DRV_NIM_INVALID_PARAMETER
*	DRV_NIM_FAIL
*
* Description
*	This function a setting of symbol rate.
*
*****************************************************************/
DRV_NIM_RESULT	DRV_NIM_TUNER_SetIF(I32 Device,I32 IntermeiateFrequency)
{
	UI8	TunerData[4];
	I32 IFvalue;

	if( !DRV_NIM_Initialized ) {								/* Not Initialized ? */
		return( DRV_NIM_NOT_INITIALIZED );						/* Not Initialized */
	}

#if DRV_NIM_CHECK_PARAMETER
	if(!((0<=Device)&&(Device<DRV_NIM_NUMBER_OF_DEVICES))){		/* Invalid Device Number ?	*/
		return( DRV_NIM_INVALID_PARAMETER );					/* Invalid Parameter 		*/
	}
	if((IntermeiateFrequency < TUNER_LOWER_LIMIT)||
	   (IntermeiateFrequency > TUNER_UPPER_LIMIT)){
		return( DRV_NIM_INVALID_PARAMETER );
	}
#endif

	if( MMAC_RTOS_AcquireSemaphore( DRV_NIM_Semaphore
							, MMAC_RTOS_SUSPEND ) != MMAC_RTOS_OK ) {	/* Take Semaphore for Callback Table NG ? */
		return( DRV_NIM_FAIL );									/* Fail */
	}

	TunerData[0] = 0x1F;	/* div high  */
	TunerData[1] = 0x40;	/* div low   */
	TunerData[2] = 0x84;	/* fixed val */
	TunerData[3] = 0x86;	/* LNB power */
	IFvalue=IntermeiateFrequency;	/* @KHz		*/

	if(IFvalue <  950000)	IFvalue =  950000;		/* Unjust data refusal */
	if(IFvalue > 2150000)	IFvalue = 2150000;		/* Unjust data refusal */

	if(IFvalue < 1550000 ){			/* 1550MHz	*/
		TunerData[3] |= 0x02;
	}else{
		TunerData[3] &= 0xFD;
	}

	IFvalue /= 125;					/*	divide by step size (125 Khz)	*/
	TunerData[0] = (UI8) ((IFvalue >> 8) & 0xFF);
	TunerData[1] = (UI8)  (IFvalue & 0xFF);

	if(FALSE==TunerSendIIC(TUNER_I2C_ADDRESS,TunerData,(UI8)sizeof TunerData)){
		MMAC_RTOS_ReleaseSemaphore( DRV_NIM_Semaphore );
		return( DRV_NIM_FAIL );
	}
	DRV_NIM_TUNER_InterFrequency = IntermeiateFrequency;	/* Global */

	if( MMAC_RTOS_ReleaseSemaphore( DRV_NIM_Semaphore ) != MMAC_RTOS_OK ) {
		return( DRV_NIM_FAIL );									/* Fail */
	}

	return( DRV_NIM_OK );


}


/*****************************************************************
*
* Function Name
*	DRV_NIM_TUNER_GetIF
*
* Prototype
*	DRV_NIM_RESULT  DRV_NIM_TUNER_GetIF(I32 Device,I32 *IntermediateFrequency)
*
* Inputs
*	Device		:	NIM Device Number
*
* Outputs
*	IntermediateFrequency : Intermediate Frequency pointer
*
* Return Codes
*	DRV_NIM_OK
*	DRV_NIM_NOT_INITIALIZED
*	DRV_NIM_INVALID_PARAMETER
*	DRV_NIM_FAIL
*
* Description
*	This function a setting of IF.
*
*****************************************************************/
DRV_NIM_RESULT  DRV_NIM_TUNER_GetIF(I32 Device,I32 *IntermediateFrequency)
{

	if( !DRV_NIM_Initialized ) {								/* Not Initialized ? */
		return( DRV_NIM_NOT_INITIALIZED );						/* Not Initialized */
	}

#if DRV_NIM_CHECK_PARAMETER
	if(!((0<=Device)&&(Device<DRV_NIM_NUMBER_OF_DEVICES))){		/* Invalid Device Number ?	*/
		return( DRV_NIM_INVALID_PARAMETER );					/* Invalid Parameter 		*/
	}
	if(IntermediateFrequency==NULL){
		return( DRV_NIM_INVALID_PARAMETER );
	}
#endif

	*IntermediateFrequency=DRV_NIM_TUNER_InterFrequency;

	return( DRV_NIM_OK );

}


/*****************************************************************
*
* Function Name
*	DRV_NIM_TUNER_DisableFrequencyControl
*
* Prototype
*	DRV_NIM_RESULT  DRV_NIM_TUNER_DisableFrequencyControl(I32 Device)
*
* Inputs
*	Device		:	NIM Device Number
*
* Outputs
*	None
*
* Return Codes
*	DRV_NIM_OK
*	DRV_NIM_NOT_INITIALIZED
*	DRV_NIM_INVALID_PARAMETER
*	DRV_NIM_FAIL
*
* Description
*	
*
*****************************************************************/
DRV_NIM_RESULT  DRV_NIM_TUNER_DisableFrequencyControl(I32 Device)
{

	if( !DRV_NIM_Initialized ) {								/* Not Initialized ? */
		return( DRV_NIM_NOT_INITIALIZED );						/* Not Initialized */
	}

#if DRV_NIM_CHECK_PARAMETER
	if(!((0<=Device)&&(Device<DRV_NIM_NUMBER_OF_DEVICES))){		/* Invalid Device Number ?	*/
		return( DRV_NIM_INVALID_PARAMETER );					/* Invalid Parameter 		*/
	}
#endif

	DRV_NIM_FreqAmendmentControl=TUNER_DISABLE;

	return( DRV_NIM_OK );

}


/*****************************************************************
*
* Function Name
*	DRV_NIM_TUNER_EnableFrequencyControl
*
* Prototype
*	DRV_NIM_RESULT  DRV_NIM_TUNER_EnableFrequencyControl(I32 Device)
*
* Inputs
*	Device		:	NIM Device Number
*
* Outputs
*	None
*
* Return Codes
*	DRV_NIM_OK
*	DRV_NIM_NOT_INITIALIZED
*	DRV_NIM_INVALID_PARAMETER
*	DRV_NIM_FAIL
*
* Description
*	
*
*****************************************************************/
DRV_NIM_RESULT  DRV_NIM_TUNER_EnableFrequencyControl(I32 Device)
{

	if( !DRV_NIM_Initialized ) {								/* Not Initialized ? */
		return( DRV_NIM_NOT_INITIALIZED );						/* Not Initialized */
	}

#if DRV_NIM_CHECK_PARAMETER
	if(!((0<=Device)&&(Device<DRV_NIM_NUMBER_OF_DEVICES))){		/* Invalid Device Number ?	*/
		return( DRV_NIM_INVALID_PARAMETER );					/* Invalid Parameter 		*/
	}
#endif

	DRV_NIM_FreqAmendmentControl=TUNER_ENABLE;

	return( DRV_NIM_OK );

}






/*--------------------------------------------------------------*/
/*						Private Function						*/
/*--------------------------------------------------------------*/



/*****************************************************************
*
* Function Name
*	TunerSendIIC
*
* Prototype
*	BOOL TunerSendIIC(UI8 Address,UI8 *Data,UI8 Length)
*
* Inputs
*	Address		:	TUNER Address
*	Data		:	Data Pointer
*	Length		:	Send Data Length
*
* Outputs
*	None
*
* Return Codes
*	TRUE		:	OK
*	FALSE		:	ERROR
*
* Description
*	This function a IIC control.
*
*****************************************************************/
BOOL TunerSendIIC(UI8 Address,UI8 *Data,UI8 Length)
{
	UI32	DataCnt;

	/*  Out Data via Serializer  */
	if(FALSE==DRV_NIM_QPSK_SetRegister(59,Address)){	/* out device address with start condition	*/
		return(FALSE);
	}
	/*	wait 50 usec (11SCLK cycles) 5ns * 10000	*/

	for(DataCnt=0; DataCnt < ( Length-1 ) ;DataCnt++){
		if(FALSE==DRV_NIM_QPSK_SetRegister(60,Data[DataCnt])){		/* output data	*/
			return(FALSE);
		}
	/*	for(i=0;i<10000;i++){};		wait 50 usec (11SCLK cycles) 5ns * 10000	*/
	}
	if(FALSE==DRV_NIM_QPSK_SetRegister(61,Data[DataCnt])){	/* out last data with stop condition		*/
		return(FALSE);
	}
	/*  Set Dummy Device Address  */
	/*	wait 50 usec (11SCLK cycles) 5ns * 10000	*/
	if(FALSE==DRV_NIM_QPSK_SetRegister(59,0x20)){	/* out dummy address with start condition	*/
		return(FALSE);
	}
	/*	wait 50 usec (11SCLK cycles) 5ns * 10000	*/
	if(FALSE==DRV_NIM_QPSK_SetRegister(61,0x00)){	/* out dummy data with stop condition		*/
		return(FALSE);
	}

	return(TRUE);

}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品成人私密视频| 国产日韩欧美a| 欧美日本韩国一区二区三区视频 | 风间由美一区二区av101| 国产91高潮流白浆在线麻豆| 免费看日韩a级影片| 日韩电影在线一区| 男男视频亚洲欧美| 免费成人小视频| 久久99国内精品| 国产精品一级在线| 丁香激情综合五月| 91视频免费看| 欧美亚男人的天堂| 91精品国产欧美日韩| 日韩欧美一区二区三区在线| 日韩女优av电影| 久久综合狠狠综合久久综合88| 精品国产污网站| 国产亚洲欧洲997久久综合| 国产日韩欧美精品在线| 国产精品少妇自拍| 亚洲精品视频在线观看网站| 一区二区三区在线观看网站| 亚洲国产精品影院| 日产国产欧美视频一区精品| 精品写真视频在线观看| 成人毛片在线观看| 色又黄又爽网站www久久| 欧美在线一区二区三区| 日韩亚洲欧美在线| 国产日韩欧美在线一区| 亚洲自拍都市欧美小说| 免费观看成人鲁鲁鲁鲁鲁视频| 国产精品538一区二区在线| 99久久久久久| 欧美一区二区三区日韩| 国产三区在线成人av| 亚洲女同一区二区| 蜜桃久久av一区| 成人av电影在线播放| 在线精品视频一区二区| 日韩欧美一二三区| 亚洲日本青草视频在线怡红院 | 99久久99久久久精品齐齐| 欧美三级电影在线观看| 久久一区二区三区国产精品| 亚洲精品视频自拍| 国内精品国产成人| 欧美视频一区二区| 国产女人18水真多18精品一级做| 亚洲一区中文日韩| 国产精品69毛片高清亚洲| 欧美综合色免费| 久久综合九色综合欧美亚洲| 一区二区三区中文在线观看| 精品一区二区三区视频在线观看| 一本到三区不卡视频| 精品久久人人做人人爽| 国产精品888| 91麻豆精品91久久久久同性| 国产精品久久久久久福利一牛影视 | 国产精品第四页| 青娱乐精品在线视频| 日本福利一区二区| 国产亚洲制服色| 日本中文一区二区三区| 色综合久久久久网| 国产精品日日摸夜夜摸av| 午夜精品在线看| 91精品久久久久久久91蜜桃 | 亚洲va欧美va人人爽| 蜜臀av一区二区在线免费观看| www.av精品| 久久综合成人精品亚洲另类欧美 | 色综合久久久久综合体| 久久精品视频一区二区| 日韩中文字幕区一区有砖一区| eeuss国产一区二区三区| xfplay精品久久| 日韩av不卡一区二区| 91浏览器入口在线观看| 亚洲国产精品精华液2区45| 麻豆精品国产91久久久久久| 欧美在线制服丝袜| 中文字幕不卡三区| 国产成人久久精品77777最新版本| 欧美一区二区视频免费观看| 亚洲午夜久久久久久久久电影院| 91色乱码一区二区三区| 国产精品免费看片| 国产suv精品一区二区883| 26uuu色噜噜精品一区二区| 日本不卡中文字幕| 欧美裸体bbwbbwbbw| 亚洲午夜成aⅴ人片| 色狠狠av一区二区三区| 日韩一区欧美小说| 99久久99久久精品免费观看| 成人免费在线播放视频| 成人午夜看片网址| 国产精品久久久久一区二区三区共| 国产精品一区二区久久不卡| 国产日韩欧美精品在线| 国产精品亚洲人在线观看| 久久久亚洲午夜电影| 国产一区二区三区久久久| 欧美精品一区二区久久婷婷| 狠狠色狠狠色综合系列| 欧美精品一区二区高清在线观看| 韩国欧美国产1区| 2021久久国产精品不只是精品| 国产乱子轮精品视频| 国产日韩精品一区二区三区在线| 国产成人午夜精品5599| 国产精品色在线观看| 91麻豆视频网站| 亚洲丰满少妇videoshd| 欧美一级在线免费| 337p亚洲精品色噜噜狠狠| 五月婷婷综合在线| 日韩小视频在线观看专区| 国产精品一二二区| 亚洲欧洲性图库| 欧美专区在线观看一区| 婷婷久久综合九色综合伊人色| 欧美一级黄色大片| 精品一区二区三区日韩| 国产精品久久精品日日| 91久久精品一区二区| 日韩高清在线观看| 久久色中文字幕| 色悠悠久久综合| 日本亚洲天堂网| 国产亚洲欧美一区在线观看| av不卡在线播放| 亚洲午夜羞羞片| 精品99久久久久久| 95精品视频在线| 日韩**一区毛片| 亚洲国产成人在线| 欧美亚洲高清一区| 精品亚洲国产成人av制服丝袜| 最新高清无码专区| 欧美乱妇23p| 国产成人免费网站| 亚洲一区二区av在线| 精品久久国产老人久久综合| av高清不卡在线| 久久精品国产第一区二区三区| 国产精品区一区二区三区| 欧美色综合天天久久综合精品| 久久精品国产在热久久| 中文字幕五月欧美| 日韩欧美一二三| 色国产综合视频| 成a人片亚洲日本久久| 精品处破学生在线二十三| jiyouzz国产精品久久| 亚洲一区二区精品久久av| 欧美精品xxxxbbbb| 成人美女视频在线观看| 青青青爽久久午夜综合久久午夜| 欧美国产丝袜视频| 日韩欧美久久一区| 欧美亚洲高清一区二区三区不卡| 国产成人免费在线观看| 蜜臀av性久久久久av蜜臀妖精 | 亚洲午夜精品17c| 国产亚洲制服色| 欧美亚一区二区| 99精品在线免费| 国产一区二区三区高清播放| 亚洲欧美二区三区| 国产人成亚洲第一网站在线播放 | 精品国产露脸精彩对白| 欧美日韩中文一区| 国产精品香蕉一区二区三区| 香蕉成人啪国产精品视频综合网| 国产精品乱码一区二区三区软件 | 日韩高清一区在线| 亚洲靠逼com| 综合网在线视频| 欧美激情自拍偷拍| 亚洲精品在线免费观看视频| 欧美年轻男男videosbes| 色婷婷精品大在线视频| 成人app网站| 国产精品亚洲第一区在线暖暖韩国 | 精品久久人人做人人爽| 7777精品伊人久久久大香线蕉| 色婷婷国产精品综合在线观看| 成人小视频在线| 国产成人av电影免费在线观看| 精彩视频一区二区| 久久精品国产精品亚洲综合| 日韩高清在线电影| 日韩avvvv在线播放| 日韩**一区毛片| 免费欧美高清视频|