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

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

?? ar1000fsamplev085.c

?? FM收音ICAR1010的DEMO程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
  status = AR1000_I2C_Read_Data(ADDR_STATUS);
  flag = status & MASK_STC; // check STC flag 
  while( flag == 0)
  {
		// maybe you can delay for a while
		// delay ( 100 ms )
		status = AR1000_I2C_Read_Data(ADDR_STATUS);
		flag = status & MASK_STC; // check STC flag 
  }
  //TUNE Ends 
  
  //AR1000_MUTE_OFF      <---   we dont mute off now, bcz this function may be called by other functions 
  //AR1000_I2C_Write_Data(1);
  
  return;
}

void AR1000_I2C_SEEK(unsigned char updown, unsigned int band, unsigned char space)
{
  unsigned int status;
  unsigned int flag;
  unsigned int FreqKHz;
  
  AR1000_MUTE_ON   // Set Muto ON before SEEK
  AR1000_I2C_Write_Data(1);
  
  AR1000_TUNE_OFF  //clear TUNE
  AR1000_I2C_Write_Data(2);

  AR1000_SEEK_OFF;	//clear SEEK 
  AR1000_I2C_Write_Data(3);

  // Setting before seek
  Reg_Data[17].i = (Reg_Data[17].i & SEEK_MASK)|SEEK_SETTING;
  AR1000_I2C_Write_Data(17);
  //
  AR1000_SEEK_ON	 
  Reg_Data[3].BIT.B13=space;  // set SPACE 
  Reg_Data[3].BIT.B15=updown; // Seek up or down
  Reg_Data[3].i = (Reg_Data[3].i & 0xE7FF) | band;  // Set BAND
  AR1000_I2C_Write_Data(3); // set  and seek
  
  status = AR1000_I2C_Read_Data(ADDR_STATUS);
  flag = status & MASK_STC; // check STC flag 
  while( flag == 0)
  {
		// maybe you can delay for a while
		// delay ( 100 ms )
		status = AR1000_I2C_Read_Data(ADDR_STATUS);
		flag = status & MASK_STC; // check STC flag 
  }
  // Seek Ends 
  // check SF if seek fail ?
  flag = status & MASK_SF;
  if ( flag )
  {
	//seek fail 
	return;
  }
  
  // seek success, get READCHAN  and fine-tune now !
  FreqKHz = 690 + ((status & MASK_READCHAN )>> SHIFT_READCHAN );

  // Restore setting after seek
  Reg_Data[17].i = AR1000reg[17];
  AR1000_I2C_Write_Data(17);
  //

  //fine-tune with auto hilo rejection
  AR1000_I2C_TUNE_HiLo(FreqKHz);// band, space);	
  
  AR1000_MUTE_OFF      
  AR1000_I2C_Write_Data(1);
  
  return;
}

unsigned int AR1000_I2C_SCAN(unsigned char updown, unsigned int band, unsigned char space)
{	// use the native seek capibility of AR1000 to accomplish  scan function 
  unsigned int status;
  unsigned int flag;
  unsigned int FreqKHz;
  unsigned int found;

  unsigned int start; // starting freuqncy (KHz) for scan
  unsigned int end;	// ending frequency (KHz) for scan
  
  AR1000_MUTE_ON   // Set Muto ON before SCAN
  AR1000_I2C_Write_Data(1);
  
  AR1000_TUNE_OFF  //clear TUNE
  AR1000_I2C_Write_Data(2);
  
  // Setting before seek
  Reg_Data[17].i = (Reg_Data[17].i & SEEK_MASK)|SEEK_SETTING;
  AR1000_I2C_Write_Data(17);
  // 
 
  start = 875; //87.5MHz is just an example 
  end = 1080;  //108.0MHz is just an example 
  
  AR1000_TUNE_OFF  //clear TUNE, just make sure tune if OFF
  Reg_Data[2].i &=0xfe00;
  Reg_Data[2].i|=(start-690); // set 87.5 MHz as starting point for this scan  
  AR1000_I2C_Write_Data(2);
 
  flag = 0;
  found = 0;
  
  while( flag == 0 )
  { //scan begin
	AR1000_SEEK_OFF;	//clear SEEK 
	AR1000_I2C_Write_Data(3);      
 

	AR1000_SEEK_ON	 
	Reg_Data[3].BIT.B13=space;  // set SPACE 
	Reg_Data[3].BIT.B15=updown; // Seek up or down
	Reg_Data[3].i = (Reg_Data[3].i & 0xE7FF) | band;  // Set BAND
	AR1000_I2C_Write_Data(3); // set  and seek
  
	status = AR1000_I2C_Read_Data(ADDR_STATUS);
	flag = status & MASK_STC; // check STC flag 
	while( flag == 0)
	{
		// maybe you can delay for a while
		// delay ( 100 ms )
		status = AR1000_I2C_Read_Data(ADDR_STATUS);
		flag = status & MASK_STC; // check STC flag 
	}
	// Seek Ends 
	// check SF if seek fail ?   0 means successful seek
	flag = status & MASK_SF;
	if( flag ==0 )
	{
		// seek success, get READCHAN , you may record this FreqKHz into your station list !
		FreqKHz = 690 + ((status & MASK_READCHAN )>> SHIFT_READCHAN );

		// update seek result to CHAN for next seek
		AR1000_TUNE_OFF // just make sure tune bit is off
		Reg_Data[2].i &=0xfe00;
		Reg_Data[2].i|=((status & MASK_READCHAN )>> SHIFT_READCHAN );
		AR1000_I2C_Write_Data(2);
		found++;
		if( FreqKHz == end )
		{ // scan to the end !!
			flag = 1; // for quit the while loop
		}

	}
}	

  // Restore setting after seek
  Reg_Data[17].i = AR1000reg[17];
  AR1000_I2C_Write_Data(17);
  //
  
  AR1000_MUTE_OFF      
  AR1000_I2C_Write_Data(1);
  
  return found;
}

//void SetAR1000_Freq2ChanID
// calculate AR1000 CHAN id  :  Freq (MHz) = 69 + 0.1*CHAN
void SetAR1000_Freq2CHAN(unsigned int FreqKHz)    
{       
  unsigned int CHAN =0x0000; //actually it's 9-bit

  AR1000_TUNE_OFF  //clear TUNE
  AR1000_I2C_Write_Data(2);
  
  CHAN = FreqKHz-690;
  Reg_Data[2].i &=0xfe00;
  Reg_Data[2].i|=CHAN;
  AR1000_TUNE_ON
  AR1000_I2C_Write_Data(2);

}  

// Volume Control
// there are two different fields about volume control in AR1000F
//  Volume   :  D7  ~D10 in register R3
//  Volume2 :  D12~D15 in register R14
//  22 combinations of ( volume2 + volume)  are  recommended.
//  
//  
//code unsigned char AR1000vol[22]={ // volume control  (increasing)
// set volume
// void SetAR1000_volume (char vol)
// {
	// Reg_Data[3].i &= 0xF87F;
	// Reg_Data[3].i |= (unsigned int)((AR1000vol[vol]&0x0F)<<7);
	
	// Reg_Data[14].i &= 0x0FFF;
	// Reg_Data[14].i |= (unsigned int)((AR1000vol[vol]&0xF0)<<8);
// }
// Bus Transfer
void AR1000_I2C_Write_Data(char Reg)
{
	char ack;
	
	
again:	
	I2C_START
	ack=Write_I2C_Byte(AR1000_I2C_WRITE_ADDR);
	ack|=Write_I2C_Byte(Reg);
	ack|=Write_I2C_Byte(Reg_Data[Reg].c[0]);
	ack|=Write_I2C_Byte(Reg_Data[Reg].c[1]);
	
	I2C_STOP
	if(ack)
		goto again;
}

unsigned int AR1000_I2C_Read_Data(char Reg)
{
	char ack;
	DATA_TYPE_S value;
	
again:	
	I2C_START 
	// set address of the register which we want to read 
	ack=Write_I2C_Byte(AR1000_I2C_WRITE_ADDR);
	ack|=Write_I2C_Byte(Reg);
	if(ack)
		goto again;
		
again2:		
	I2C_START
	// start to read
	ack=Write_I2C_Byte(AR1000_I2C_READ_ADDR);
	if(ack)
		goto again2;
		
	value.c[0]= Read_I2C_Byte(); // read 8-bit data
	value.c[1]= Read_I2C_Byte(); // read another 8-bit data
	I2C_STOP
	
	return value.i;

}

unsigned char Write_I2C_Byte( unsigned char bits )
{
	unsigned char ack;
	// write a byte of data to I2C bus
	
	return ack;
}

unsigned char Read_I2C_Byte( )
{
	unsigned char bits;
	// read a byte of data from I2C bus
	
	return bits;
}

void AR1000_I2C_STANDBY( )
{
	Reg_Data[0].BIT.B0 = 0;
	AR1000_I2C_Write_Data(0);
}


void AR1000_I2C_WAKEUP(unsigned int FreqKHz)
{
	unsigned int status;
	
	Reg_Data[0].BIT.B0 = 1;
	AR1000_I2C_Write_Data(0);

	//Power-On Calibration begins
	// then wait for STC flag
	// maybe you need to delay for a while
	// delay ( 100 ms )
	status = AR1000_I2C_Read_Data(ADDR_STATUS);
	status &=MASK_STC; // check STC flag 
	while( status == 0)
	{
		// maybe you can delay for a while
		// delay ( 100 ms )
		status = AR1000_I2C_Read_Data(ADDR_STATUS);
		status &=MASK_STC; // check STC flag 
	}
	//Power-On Calibration Ends	
	
	//fine-tune with auto hilo rejection
	AR1000_I2C_TUNE_HiLo(FreqKHz);	
	
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产高清精品在线| 午夜精品一区在线观看| 国产乱码精品一区二区三| 日韩欧美一级特黄在线播放| 免费观看日韩电影| 日韩欧美在线观看一区二区三区| 蜜臀av一区二区| 久久综合色婷婷| 成人av在线播放网址| 亚洲欧美综合网| 欧美日韩性生活| 久久99精品久久久久久国产越南 | 精品人在线二区三区| 久久99精品久久久| 亚洲国产激情av| 欧美中文字幕亚洲一区二区va在线 | 五月婷婷激情综合| 精品福利二区三区| 99久久精品99国产精品| 亚洲福中文字幕伊人影院| 精品国产第一区二区三区观看体验 | 国产精品久久久久久久久免费丝袜 | 国产黄色精品视频| 一区二区三区资源| 日韩女同互慰一区二区| www.性欧美| 日日夜夜一区二区| 国产精品网站一区| 制服.丝袜.亚洲.另类.中文| 豆国产96在线|亚洲| 亚洲第一久久影院| 日本一区二区高清| 69久久夜色精品国产69蝌蚪网| 国产精品一区二区三区网站| 亚洲一区二区三区美女| 国产偷国产偷精品高清尤物| 91官网在线免费观看| 国产自产视频一区二区三区| 亚洲国产综合人成综合网站| 久久精品一区二区三区四区| 欧美日韩一区高清| 国产成人免费在线观看不卡| 午夜精品免费在线| 亚洲婷婷国产精品电影人久久| 欧美本精品男人aⅴ天堂| 91传媒视频在线播放| 国产成人在线影院| 蜜臀av性久久久久蜜臀aⅴ| 国产精品国产三级国产普通话99 | 国产欧美一区二区三区在线看蜜臀| 欧美三级视频在线观看| 成人国产精品免费观看视频| 麻豆91在线观看| 一区二区成人在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 狠狠色2019综合网| 午夜欧美视频在线观看| 亚洲日本护士毛茸茸| 国产视频亚洲色图| 欧美一区二区视频在线观看2022| 日本高清不卡在线观看| 成人免费视频视频在线观看免费| 国内精品嫩模私拍在线| 免费视频一区二区| 视频一区二区欧美| 日韩综合一区二区| 视频一区二区中文字幕| 亚洲图片欧美视频| 亚洲电影中文字幕在线观看| 日韩毛片高清在线播放| 国产精品青草综合久久久久99| 久久中文字幕电影| 国产网红主播福利一区二区| 国产亚洲午夜高清国产拍精品| 欧美成人女星排名| 久久青草国产手机看片福利盒子 | 国产婷婷精品av在线| 久久久久久久久久久电影| 久久久亚洲精华液精华液精华液 | 国产清纯美女被跳蛋高潮一区二区久久w | 免费观看一级欧美片| 日本成人在线看| 蜜臀av一区二区| 国内欧美视频一区二区| 国产精品1区2区3区在线观看| 久久99热99| 国产精品一区久久久久| 成人免费视频免费观看| 91农村精品一区二区在线| 色综合一个色综合| 欧美日韩在线播放一区| 欧美精品第1页| 精品久久久久一区| 欧美高清在线精品一区| 亚洲欧美乱综合| 五月婷婷久久综合| 激情国产一区二区| 成人国产在线观看| 欧美日韩一区二区三区视频| 91精品国产乱| 国产欧美日产一区| 亚洲精品成人精品456| 天堂av在线一区| 激情六月婷婷久久| 91香蕉视频在线| 欧美日韩精品福利| 久久久久久久国产精品影院| 最新日韩av在线| 五月婷婷激情综合| 国产suv一区二区三区88区| 91精品福利视频| 精品国免费一区二区三区| 国产精品美女久久久久久久| 亚洲一区二区不卡免费| 久久99精品久久久久久| 91麻豆免费观看| 日韩欧美国产三级| 免费不卡在线观看| 成人看片黄a免费看在线| 在线一区二区三区四区| 欧美精品一区二区久久久| 亚洲色图欧美在线| 久久99久久久久久久久久久| 99久久99久久精品国产片果冻| 51久久夜色精品国产麻豆| 国产精品夫妻自拍| 久久精品免费观看| 欧美最猛黑人xxxxx猛交| 久久精品一区蜜桃臀影院| 性久久久久久久久久久久| 不卡区在线中文字幕| 日韩精品一区二区三区四区| 亚洲美女淫视频| 国产精品影音先锋| 欧美精品在线一区二区| 一区二区三区高清在线| 国产精品99久久久久久似苏梦涵| 欧美日本一区二区三区| 国产精品久久久久久久久久免费看| 美女任你摸久久| 欧美三级在线看| 欧美国产一区二区在线观看| 蜜臀av一区二区在线观看| 在线欧美日韩精品| 中文字幕日本不卡| 高清av一区二区| 久久综合久久综合久久| 三级成人在线视频| 欧美日韩性生活| 亚洲免费观看视频| jlzzjlzz亚洲日本少妇| 久久综合九色综合欧美就去吻| 美女国产一区二区| 欧美日韩国产免费一区二区| 一卡二卡欧美日韩| 一本色道久久加勒比精品| 中文字幕中文字幕中文字幕亚洲无线| 精品在线视频一区| 欧美mv和日韩mv的网站| 蜜臀av一区二区| 日韩欧美国产麻豆| 六月婷婷色综合| 日韩欧美精品在线| 久久国产乱子精品免费女| 欧美高清视频www夜色资源网| 亚洲最大成人综合| 久久久夜色精品亚洲| 国产精品一区二区不卡| 久久久噜噜噜久久中文字幕色伊伊| 久久精品国产亚洲一区二区三区| 9191成人精品久久| 日本欧美在线观看| 日韩午夜激情视频| 麻豆成人在线观看| 久久久久久麻豆| 国产99精品在线观看| 国产日韩欧美精品一区| 国产成人午夜高潮毛片| 国产精品嫩草影院com| 不卡视频一二三四| 夜夜嗨av一区二区三区中文字幕| 欧美主播一区二区三区美女| 亚洲超碰精品一区二区| 日韩三级av在线播放| 国产一区欧美二区| 国产精品视频yy9299一区| 91麻豆国产精品久久| 亚洲国产精品影院| 日韩免费性生活视频播放| 国产精品1024久久| 亚洲日本成人在线观看| 欧洲另类一二三四区| 奇米精品一区二区三区在线观看一| 欧美zozo另类异族| 播五月开心婷婷综合| 亚洲亚洲人成综合网络| 日韩欧美一级二级三级| 成人午夜视频在线观看| 一区二区免费在线播放| 欧美大片一区二区|