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

📄 ar1000fsamplev085.h

📁 FM收音ICAR1010的DEMO程序
💻 H
字号:
//v0.85
#ifndef AR1000FSample_H
#define AR1000FSample_H

// function prototype
void AR1000_init(void);
void AR1000_I2C_Write_Data(char Reg);
unsigned int AR1000_I2C_Read_Data(char Reg);
//void AR1000_I2C_TUNE(unsigned int FreqKHz);//, unsigned int band, unsigned char space);
void AR1000_I2C_TUNE_HiLo(unsigned int FreqKHz);//, unsigned int band, unsigned char space);
void AR1000_I2C_STANDBY(void);
void AR1000_I2C_WAKEUP(unsigned int FreqKHz);
void SetAR1000_Freq2CHAN(unsigned int FreqKHz);
void AR1000_I2C_SEEK(unsigned char updown, unsigned int band, unsigned char space);
unsigned int AR1000_I2C_SCAN(unsigned char updown, unsigned int band, unsigned char space);
//void SetAR1000_volume (char vol);

unsigned char Write_I2C_Byte( unsigned char bits );
unsigned char Read_I2C_Byte(void);
// define 
#define ADDR_DEVID	0x1B // the address of DEVID register
#define ADDR_CHIPID 0x1C // the address of CHIPID register 

#define DEVID_VerF	   	0x65B1 // VERSION+MFID
#define CHIPNO_AR1000	0x1000 // 16'b0001 0000 0000 0000
#define VER_F			0x6

#define ON  1
#define OFF 0

#define UEBAND	0x0000 // US & Europe BAND 87.5MHz to 108MHz
#define JBAND	0x1000 // Japen BAND 76MHz to 90MHz
#define JWBAND	0x1800 // Japen BAND (wide) 76 MHz to 108MHz

#define SPACE100K	1
#define SPACE200K	0
#define SEEKUP	1
#define SEEKDOWN 0

#define ADDR_STATUS	0x13 // the address of status register
#define MASK_STC 0x0020  // Seek/Tune/PowerOn complete  D5 in  adress 13H 
#define MASK_SF	 0x0010  //  Seek Fail D4 in address 13H
#define MASK_ST	 0x0008  //  Stereo  D3 in address 13H
#define MASK_READCHAN 0xFF80 // D7~D15 in address 13H
#define SHIFT_READCHAN 7

#define ADDR_RSSI	0x12 
#define MASK_RSSI 	0xFE00
#define SHIFT_RSSI  9


#define ADDR_SEEK_SETTING	0x11
#define SEEK_SETTING	0x2000
#define SEEK_MASK		0xC3FF


#define AR1000_I2C_WRITE_ADDR  0x20		// 0010000  0
#define AR1000_I2C_READ_ADDR   0x21		// 0010000  1

#define AR1000_MUTE_ON { Reg_Data[1].BIT.B1 = ON; }
#define AR1000_MUTE_OFF { Reg_Data[1].BIT.B1 = OFF;}

#define AR1000_TUNE_ON 	{ Reg_Data[2].BIT.B9 = ON;}
#define AR1000_TUNE_OFF { Reg_Data[2].BIT.B9 = OFF;}

#define AR1000_SEEK_ON 	{ Reg_Data[3].BIT.B14 = ON;}
#define AR1000_SEEK_OFF { Reg_Data[3].BIT.B14 = OFF;}

#define AR1000_RDSInt_ON 	{ Reg_Data[1].BIT.B6 = ON;}
#define AR1000_RDSInt_OFF   { Reg_Data[1].BIT.B6 = OFF;}

#define I2C_START 	{   }  // TBD
#define I2C_STOP    {   }  // TBD


// data structure
typedef union DATA_TYPE_S {
	unsigned int i;		
	unsigned char c[2];		//c[0] MSByte  c[1] LSByte
	struct { unsigned char
				B8:1,  //LSBit  C[0]
				B9:1, 
				B10:1, 
				B11:1, 
				B12:1, 
				B13:1, 
				B14:1, 
				B15:1,  //MSBit
				B0:1,
				B1:1,
				B2:1,
				B3:1,
				B4:1,
				B5:1,
				B6:1,
				B7:1;
	} BIT;
}DATA_TYPE_S;

#endif

⌨️ 快捷键说明

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