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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ns81l.c

?? NS81 FM/AM tuner driver
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "target.h"
#include "tuner.h"
#include "ns81l.h"

#ifdef __TUNER__


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define LOW 		0
#define HIGH 		1
#define SUCCESS 	0
#define FAIL 		1

#define BIT0	0x0001
#define BIT1	0x0002
#define BIT2	0x0004
#define BIT3	0x0008
#define BIT4	0x0010
#define BIT5	0x0020
#define BIT6	0x0040
#define BIT7	0x0080
#define BIT8	0x0100
#define BIT9	0x0200
#define BIT10	0x0400
#define BIT11	0x0800
#define BIT12	0x1000
#define BIT13	0x2000
#define BIT14	0x4000
#define BIT15	0x8000
#define BITA	0x0400
#define BITB	0x0800
#define BITC	0x1000
#define BITD	0x2000
#define BITE	0x4000
#define BITF	0x8000
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

typedef struct {
	unsigned char addrofeeprom;
	unsigned char mask;
	unsigned char addrofns81;
	signed char shiftbits;
} NS81PARA;

NS81PARA code ns81l2paraarray[]=
{
	{0x01,BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7,0,0},//R007_FMIXC
	{0x02,BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6,0,8},//R08E_FMDET
	{0x03,BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7,1,0},//R107_DACA-M
	{0x04,BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7,1,8},//R18F_DACB-M
	{0x0a,BIT4|BIT5,2,3},//R278-SRFB
	{0x0a,BIT0|BIT1,2,5},//R256-DAG
	{0x0b,BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6,2,9},//R29F-SEL
	{0x0c,BIT4|BIT5,3,-1},//R334-SME
	{0x0c,BIT0|BIT1|BIT2,3,0},//R302-SMS
	{0x0d,BIT0|BIT1|BIT2,3,11},//R3BD-HC
	{0x0e,BIT4|BIT5|BIT6,4,7},//R4BD-RSS
	{0x0e,BIT0|BIT1|BIT2|BIT3,4,0},//R403-SN
	{0x0f,BIT0|BIT1|BIT2|BIT3|BIT4|BIT5,4,4},//R449-SEP
	{0x10,BIT4|BIT5|BIT6,5,0},//R546_CFA
	{0x10,BIT0|BIT1|BIT2,5,0},//R502_BMUT
	{0x11,BIT4|BIT5|BIT6|BIT7,5,6},//R5AD_PCN
	{0x11,BIT0|BIT1,5,8},//R589_PDOF
	{0x14,BIT0|BIT1|BIT2|BIT3,6,7},//R67A_NAGC
	{0x15,BIT4|BIT5,7,4},//R789_ADET
	{0x15,BIT0|BIT1,7,6},//R767_CSM
	{0x16,BIT0|BIT1|BIT2|BIT3,7,11},//R7BE_RNAGC
	{0x17,BIT4|BIT5,8,10},//R8EF_IS
	{0x17,BIT0|BIT1|BIT2,8,11},//R8BD_IM
	{0x1e,BIT4|BIT5,13,6},//RDAB_NSENS
	{0x1e,BIT0|BIT1|BIT2,13,7},//RD79_NPW
	{0x1f,BIT4|BIT5,13,10},//RDEF_NCG
	{0x1f,BIT0|BIT1,13,12},//RDCD_Y
	{0x20,BIT7,3,1},//F38_PENC
	{0x22,BIT6,7,4},//F7A_HFG
	{0x25,BIT4,13,-3}//FD1_NCC
};

NS81PARA code rb15_fmlo={0x1a,BIT0|BIT1|BIT2|BIT3|BIT4,11,1};
NS81PARA code rb15_amlo={0x1b,BIT0|BIT1|BIT2|BIT3|BIT4,11,1};
NS81PARA code rb15_fmdx={0x18,BIT0|BIT1|BIT2|BIT3|BIT4,11,1};
NS81PARA code rb15_amdx={0x19,BIT0|BIT1|BIT2|BIT3|BIT4,11,1};
NS81PARA code r623_fmmag={0x12,BIT0|BIT1,6,2};
NS81PARA code r645_fmwag={0x12,BIT4|BIT5,6,0};
NS81PARA code r623_ammag={0x13,BIT0|BIT1,6,2};
NS81PARA code r645_amwag={0x13,BIT4|BIT5,6,0};
NS81PARA code rb7a_j_am={0x1c,BIT4|BIT5|BIT6|BIT7,11,3};
NS81PARA code rb7a_j_fm={0x1c,BIT0|BIT1|BIT2|BIT3,11,7};

extern bit bIsLocal,bIsStereo,bIsFm ;
extern unsigned short idata FmFreq , AmFreq ;
extern unsigned char idata TunerArea;
unsigned int idata ns81_reg[14];

typedef struct {
    unsigned char m[3];
    unsigned int ifcount[3];
    unsigned int ifcounttime;//J lm 2003 2 19 
    unsigned char div[3];
    unsigned char s[3];
} NS81FREQ;

NS81FREQ code ns81_fm = {
    {M_100KHZ,M_50KHZ,M_100KHZ},
    {1070,1070,1070},
    J_32MS_5K,
    {DIV_BY_10,DIV_BY_10,DIV_BY_6},
    {S_10260_228,S_10251,S_10260_228}
};

NS81FREQ code ns81_am = {
    {M_100KHZ,M_90KHZ,M_9KHZ},
    {10710,10701,10710},
    J_16MS_1K,//2003 03 12 liming 
    {DIV_BY_10,DIV_BY_10,DIV_BY_6},
    {S_10260_228,S_10251,S_10260_228}
};


// p27=sda , because it can not input or output at the same time , so change it to p17

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#define ns_SetSda() 		Set_P2_7()
#define ns_ClrSda() 		Clr_P2_7()
#define ns_GetSda() 		Get_P2_7()
#define read_ns_stjo()  	Get_P0_1()

#define ns_ClrScl()			Clr_P2_6()
#define ns_SetScl()			Set_P2_6()
#define ns_ClrStrb()  		Clr_P0_0()
#define ns_SetStrb()  		Set_P0_0()

/*******************************************************************
	NS81 I2C SUBRUTINES
*******************************************************************/
#define I2C_DELAY_TIME				4
#define CHECK_I2C_ACK_TIME		200

#define iic_ClrSda()		ns_ClrSda()
#define iic_SetSda()		ns_SetSda()
#define iic_ClrScl()		ns_ClrScl()
#define iic_SetScl()		ns_SetScl()
#define iic_GetSda()		ns_GetSda()

/*When scl is high, set sda from high to low*/
static void Start_24c02()
{
	iic_ClrScl();
	iic_SetSda();
	iic_SetScl();
	iic_ClrSda();
	iic_ClrScl();
}

/*when scl is high, set sda from low to high*/
static void Stop_24c02()
{
	iic_ClrScl();
	iic_ClrSda();
	iic_SetScl();
	iic_SetSda();
//	iic_ClrScl();//to avoid err action
}

static void Skip_Ack_24c02()//the nineth clock for ack
{
	iic_ClrScl();
	iic_SetSda();//if sda is low, still low, wire ORed
	iic_SetScl();
	iic_ClrScl();
}				

static void Ack_24c02()//the nine clock for ack
{
	iic_ClrScl();//when scl is low,change the sda
	iic_ClrSda();
	iic_SetScl();
	iic_ClrScl();
	iic_SetSda();//acording to output acknowledge at24c64.pdf page6
}

static void Send_Byte_24c02(unsigned char ucvalue)
{
	unsigned char i;
	iic_ClrScl();
	for(i=0;i<8;i++)
	{
		if(ucvalue & 0x80){
			iic_SetSda();
		}
		else{
			iic_ClrSda();
		}//when scl is low, change sda
		iic_SetScl();//postive change,data clock into the eeprom
		iic_ClrScl();
		ucvalue<<=1;
	}
}

static unsigned char Receive_Byte_24c02(void)
{
	unsigned char i,value=0;
	iic_ClrScl();
	for(i=0;i<8;i++)
	{
		value<<=1;
		iic_SetScl();//latch the data 
		if(iic_GetSda())
			value|=1;
		iic_ClrScl();//negative change,data clock out of the eeprom
	}
	return value;
}

/*******************************************************************
	Read data from I2c Slave device
	addr: 	Slave device address
	subadr: Sub address 
	ptrdata: point a buffer that store one unsigned char data
	len:the length of data which to be read
*******************************************************************/
static unsigned char at24c02_ReadBytes(unsigned char addr,unsigned char subadr,unsigned char *ptrdata,unsigned char len)
{
	unsigned char i;
	if(len ==0) return 1;
	
	for(i=0;i<10;i++)
	{
		Start_24c02();
		Send_Byte_24c02(addr & 0xfe);
		iic_SetSda();//if sda is low,still low
		iic_SetScl();//the nineth clock for ack
		if(!iic_GetSda()){
			iic_ClrScl();
			break;
		}
	}
	
	if(i== 10) return 1;//ack failure

	Send_Byte_24c02(subadr);
	Skip_Ack_24c02();
	Start_24c02();
	Send_Byte_24c02(addr | 0x01);
	Skip_Ack_24c02();
	for(i=0;i<len-1;i++)
	{
		*ptrdata++=Receive_Byte_24c02();
		Ack_24c02();
	}
	*ptrdata=Receive_Byte_24c02();
	Skip_Ack_24c02();
	Stop_24c02();
	return 0;
}

/*******************************************************************
	send bytes to I2c device
	addr: 	Slave device address
	subadr: Sub address 
	ptrdata: point a buffer which to been send
	len:the length of data which to be send
*******************************************************************/
#if 0 //andy
static unsigned char at24c02_WriteBytes(unsigned char addr,unsigned char subadr,unsigned char *ptrdata,unsigned char len)
{
#define PAGE_SIZE 8  
	unsigned char i;
	if(len ==0) return 1;	

	while(1)
	{
		for(i=0;i<10;i++)
		{
			Start_24c02();
			Send_Byte_24c02(addr & 0xfe);
			iic_SetSda();//if sda is low,still low
			iic_SetScl();//the nineth clock for ack
			if(!iic_GetSda()){
				iic_ClrScl();
				break;
			}
		}
	
		if(i== 10) return 1;//ack failure

		if(len==0) break;
		Send_Byte_24c02(subadr);
		Skip_Ack_24c02();
	
		while(1)
		{
			Send_Byte_24c02(*ptrdata++);
			Skip_Ack_24c02();
			len--;
			subadr++;
			if(((subadr%PAGE_SIZE)==0)||(len==0)) break;
		}
		Stop_24c02();
	}
	return 0;//write ok
}
#endif
/*******************************************************************
	Func:	write the value  into interal register 
	argu:	addr , the address of interal register
			uidata, the value to be written 
    return: none
*******************************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91蜜桃网址入口| 亚洲欧洲国产专区| 国产欧美日韩另类一区| 亚洲欧洲制服丝袜| 欧美日韩性生活| 久久久精品欧美丰满| 亚洲成人av一区二区| 波多野结衣精品在线| 2021中文字幕一区亚洲| 天天操天天色综合| 91精彩视频在线| 国产精品网友自拍| 狠狠色狠狠色综合日日91app| 欧美日韩性生活| 亚洲已满18点击进入久久| 粉嫩绯色av一区二区在线观看| 日韩欧美一级特黄在线播放| 亚洲成人手机在线| 欧美在线视频不卡| 亚洲男人的天堂在线aⅴ视频| 风间由美性色一区二区三区| 久久无码av三级| 久久狠狠亚洲综合| 欧美一区二区大片| 亚洲国产精品一区二区尤物区| 91日韩在线专区| 亚洲视频在线观看一区| www.视频一区| 一区精品在线播放| 色中色一区二区| 一区二区三区四区在线免费观看| 91免费观看视频| 亚洲伦在线观看| 在线观看亚洲精品视频| 一区二区免费看| 在线电影国产精品| 蜜臀久久久久久久| 欧美mv日韩mv| 国产成人免费视频网站| 国产精品久久久久久久久免费丝袜 | 69久久99精品久久久久婷婷| 亚洲一区电影777| 欧美精品日韩一本| 日韩电影在线看| 26uuu色噜噜精品一区| 久久精品国产久精国产| 久久这里只有精品视频网| 久久电影网站中文字幕| 欧美大度的电影原声| 国产精品亚洲专一区二区三区| 欧美国产激情二区三区| 色综合天天做天天爱| 日韩电影在线一区二区三区| 精品国产乱码久久久久久1区2区| 精品一区二区久久久| 国产精品视频在线看| 欧美午夜理伦三级在线观看| 免费高清不卡av| 国产亚洲综合色| 91看片淫黄大片一级在线观看| 亚洲bt欧美bt精品| 久久伊99综合婷婷久久伊| bt欧美亚洲午夜电影天堂| 五月婷婷综合网| 国产日韩精品一区二区三区在线| 在线观看日韩电影| 精品亚洲porn| 亚洲在线免费播放| 久久夜色精品国产欧美乱极品| 色综合久久天天| 九九国产精品视频| 悠悠色在线精品| 久久九九久精品国产免费直播| 91日韩一区二区三区| 黄一区二区三区| 亚洲已满18点击进入久久| 国产亚洲成aⅴ人片在线观看| 欧美性受极品xxxx喷水| 国产大片一区二区| 日韩av中文在线观看| 亚洲六月丁香色婷婷综合久久| 日韩午夜激情av| 在线观看一区二区视频| 成人午夜av在线| 久久成人综合网| 亚洲电影在线免费观看| 国产精品私人自拍| 精品粉嫩超白一线天av| 欧美少妇xxx| 91视频一区二区| 成人亚洲一区二区一| 韩国女主播一区| 免费在线看成人av| 亚洲国产色一区| 亚洲欧美日韩国产综合在线| 国产清纯白嫩初高生在线观看91 | 激情久久久久久久久久久久久久久久| 亚洲精品乱码久久久久久黑人| 久久蜜桃一区二区| 精品欧美一区二区久久| 欧美日韩高清影院| 欧美婷婷六月丁香综合色| 不卡一卡二卡三乱码免费网站| 国产伦精品一区二区三区免费| 日本视频免费一区| 日韩高清电影一区| 日韩成人免费电影| 日本视频免费一区| 日本不卡一二三| 日韩精品国产欧美| 日韩**一区毛片| 视频一区视频二区在线观看| 亚洲a一区二区| 日韩电影在线一区二区三区| 日韩电影在线观看电影| 日韩成人一区二区| 久久国产日韩欧美精品| 蜜臀久久99精品久久久久宅男 | 日韩成人一级大片| 日韩av高清在线观看| 美女视频一区在线观看| 久久精工是国产品牌吗| 韩国一区二区视频| 国产成人福利片| 99国产精品视频免费观看| 97超碰欧美中文字幕| 色综合久久综合网97色综合| 欧美亚洲动漫精品| 日韩欧美国产电影| 国产视频一区二区在线| 亚洲欧洲精品一区二区精品久久久 | 欧美一级日韩一级| 精品剧情在线观看| 国产免费观看久久| 一区二区成人在线| 免费在线观看一区二区三区| 国产乱码精品一区二区三区五月婷| 成人中文字幕合集| 欧美手机在线视频| www一区二区| 亚洲天堂av一区| 日本sm残虐另类| www.日韩av| 日韩一区二区三区免费看| 精品久久一二三区| 亚洲视频综合在线| 免费成人在线观看视频| av亚洲精华国产精华精华| 欧美性极品少妇| 国产午夜精品福利| 性感美女极品91精品| 国产不卡视频在线播放| 欧美私人免费视频| 亚洲国产精品成人综合色在线婷婷| 夜夜嗨av一区二区三区网页| 久久99久久99| 色综合久久99| 久久久亚洲精品石原莉奈| 一级中文字幕一区二区| 国产高清不卡一区二区| 欧美视频在线一区| 国产精品国产三级国产普通话三级 | 一区二区三区四区不卡视频| 精品一区二区在线视频| 日本韩国欧美一区| 久久久久久免费毛片精品| 午夜av区久久| 色诱亚洲精品久久久久久| 国产午夜精品理论片a级大结局 | 一区二区三区.www| 国产精品一区二区无线| 91精品国产综合久久精品麻豆| 中文字幕一区二区三区精华液| 经典三级视频一区| 91精品国产综合久久香蕉麻豆| 亚洲激情男女视频| 国产成人在线电影| 久久久久久免费| 国产在线一区二区综合免费视频| 欧美日韩性生活| 亚洲精品免费在线| 99国产欧美久久久精品| 国产精品乱码人人做人人爱| 久久精品国产免费看久久精品| 91精品国产91久久综合桃花| 韩国成人精品a∨在线观看| 欧美人与禽zozo性伦| 亚洲综合精品久久| 在线免费观看日韩欧美| 成人免费在线观看入口| www.久久久久久久久| 国产精品每日更新在线播放网址| 国产成人自拍网| 国产人伦精品一区二区| 国产大陆亚洲精品国产| 中文字幕精品一区二区精品绿巨人| 韩国女主播成人在线| 久久久久久久久伊人| 丰满白嫩尤物一区二区| 中文字幕日韩av资源站|