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

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

?? lt8900_receive_main.#3

?? LT8900
?? #3
字號:
 //----------------------------------------------------
//   F342 Test Program
//----------------------------------------------------

#include <C8051F340.h>                 // SFR declarations
#include <intrins.h>
#include "..\inc\LT8900.h"

#define _DEBUG_SPI_  1 //Debug SPI Interface

#define MAX_BUFFER_SIZE    8           // Maximum buffer Master will send
#define SYSCLK					12000000    // SYSCLK frequency in Hz
#define SPI_CLOCK				6000000

#define BAUDRATE        115200         // Baud rate of UART in bps
#define DELAY						5
#define BUFLEN					24
#define EBUFLEN					12

// SPI Instruction Set
#define  SLAVE_LED_ON      0x01        // Turn the Slave LED on
#define  SLAVE_LED_OFF     0x02        // Turn the Slave LED off
#define  SPI_WRITE         0x04        // Send a byte from the Master to the
                                       // Slave
#define  SPI_READ          0x08        // Send a byte from the Slave to the
                                       // Master
#define  SPI_WRITE_BUFFER  0x10        // Send a series of bytes from the
                                       // Master to the Slave
#define  SPI_READ_BUFFER   0x20        // Send a series of bytes from the Slave
                                       // to the Master
#define  ERROR_OCCURRED    0x40        // Indicator for the Slave to tell the

//unsigned char SPI_Data = 0xA5;

//unsigned char SPI_Data_Array[MAX_BUFFER_SIZE] = {0};

bit Error_Flag = 0;

unsigned char Command = 0x00;

//---------------------------------------------------------------------
// Glabal Definition
//---------------------------------------------------------------------
sbit  LED      = P2^2;                 // LED='1' means ON
sbit  SW       = P2^0;                 // SW = '0' means button is pressed

unsigned char RBUF[24];
unsigned char TBUF[BUFLEN];
unsigned char xdata EBUF[EBUFLEN];
unsigned char tlen=0, channel=0x20;
signed char dlen;
unsigned long t = 0;

unsigned char bdata R,RegH, RegL;
sbit	H0 = RegH^0;
sbit	H1 = RegH^1;
sbit	H2 = RegH^2;
sbit	H3 = RegH^3;
sbit	H4 = RegH^4;
sbit	H5 = RegH^5;
sbit	H6 = RegH^6;
sbit	H7 = RegH^7;

sbit	L0 = RegL^0;
sbit	L1 = RegL^1;
sbit	L2 = RegL^2;
sbit	L3 = RegL^3;
sbit	L4 = RegL^4;
sbit	L5 = RegL^5;
sbit	L6 = RegL^6;
sbit	L7 = RegL^7;

//subrouting
void putchar (char c);
void print_string (char pstring[]);
void delay_us (unsigned int us);
void Init_Device(void);
void UART0_Init (void);
void LT8900_Init(void);
void SPI0_Init (void);  //new added by yfwen 2010.8

// SPI Related 
#if (!_DEBUG_SPI_)
extern unsigned char SPI_SendByte (unsigned char tbyte);
#else
unsigned char SPI_SendByte(unsigned char buf);
#endif

void SPI_SendFrame (void);
void SPI_CleanBuffer (void);

// LT8900 Related
void LT_ReadReg(unsigned char reg);
void LT_WriteReg(unsigned char reg, unsigned char H, unsigned char L);
void LT_SetSyncWord (void);

// Test program


//--------------------------------------------------
//Main Routing
//--------------------------------------------------
void main(void)
{
	unsigned int i=0;
	unsigned int j=0;
	unsigned int Cnt_CRC=0,Cnt_err=0;
	//Initialize F342
	Init_Device();
	SPI0_Init();
	//UART0_Init();
	LT8900_Init();
	while(1)
	{
	// RX Test Program with print out. TEst RSSI
		LT_WriteReg(52, 0x80, 0x80);
		LT_WriteReg(7, 0x00, 0x80 + 0x20);

		while (PKT_FLAG == 0);
		i++;
		#if 0
		{
		//Ready to read Packets from FIFO
			LT_ReadReg(50);
			RBUF[0]=RegH;
			RBUF[1]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[2]=RegH;
			RBUF[3]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[4]=RegH;
			RBUF[5]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[6]=RegH;
			RBUF[7]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[8]=RegH;
			RBUF[9]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[10]=RegH;
			RBUF[11]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[12]=RegH;
			RBUF[13]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[14]=RegH;
			RBUF[15]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[16]=RegH;
			RBUF[17]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[18]=RegH;
			RBUF[19]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[20]=RegH;
			RBUF[21]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[22]=RegH;
			RBUF[23]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[10]=RegH;
			RBUF[11]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[12]=RegH;
			RBUF[13]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[14]=RegH;
			RBUF[15]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[16]=RegH;
			RBUF[17]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[18]=RegH;
			RBUF[19]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[20]=RegH;
			RBUF[21]=RegL;
			delay_us(1);
			LT_ReadReg(50);
			RBUF[22]=RegH;
			RBUF[23]=RegL;
			delay_us(1);
		}
		#endif
	}
}

//-------------------------------------------------------------
// Delay some micro second
//-------------------------------------------------------------
void delay_us (unsigned int us)
{
	for (; us>0; us--);
}

//-------------------------------------------------------------
// Output a character to the UART
//-------------------------------------------------------------
void putchar (char c)
{
	while (!TI0); //Wait until last transmit finish
	TI0 = 0; //clean TX signal
	if (c == '\n') //If is return, send LF/RT
	{
		SBUF0 = 0x0D;
		while (!TI0);
		SBUF0 = 0x0A;
	}
	else
		SBUF0 = c;
}

//-------------------------------------------------------------
// Output a string to the UART
// return is supported
//-------------------------------------------------------------
void print_string (char pstring[])
{
   unsigned char i = 0;
   XBR0 = 0x01; //disable SPI
   while (pstring[i])
   {
      putchar(pstring[i++]);
   }
   XBR0 = 0x03; //enable SPI
}

//=======================================================================
//--------------------------------------------------------------
// Initialization fuctions
//-------------------------------------------------------------
void Init_Device(void)
{
	//Close watchdog
	PCA0MD &= ~0x40; //disable watchdog

	//Port IO Init
    //P0MDOUT   = 0x10; //P0.4 are push-pull, others are open-drain
	P0MDOUT = 0x1D;                     // New added by yfwen Doing Make SCK, MOSI, and NSS push-pull
    PKT_FLAG = 1;
    FIFO_FLAG = 1;
//	P0SKIP		= 0x00; //P0 skip P0.6 and P0.7
	P1MDOUT		= 0x1E; //P1.1~P1.4 is push-pull, P1.0 is open-drain for input
	P1SKIP		= 0xE0; //P1.0 ~ P1.4 are used, P1.5 ~ P1.7 skip
	RESET_N   = 0; //disable LT8900
	P2MDIN		&=	~0x20; //P2.5 is analog input
	P2MDOUT	  = 0x04; //P2.2 is push-pull
    P2SKIP    = 0x03; //P2.0 and P2.1 are skip
 
    XBR0 = 0x03;                        // Enable the SPI on the XBAR
    //XBR0      = 0x01; //Enable UART
    XBR1      = 0x40; //Enable Crossbar and weak pull-up

	//Oscillator Init
    OSCICN    = 0x83; //internal HF clock, 12MHz
    LED = 0;
	while ( (OSCICN & 0x40) == 0);
	LED = 1;
}

//-----------------------------------------------------------------------------
// SPI0_Init
//-----------------------------------------------------------------------------
//
// Return Value : None
// Parameters   : None
//
// Configures SPI0 to use 4-wire Single Master mode. The SPI timing is
// configured for Mode 0,0 (data centered on first edge of clock phase and
// SCK line low in idle state).
//
//-----------------------------------------------------------------------------
void SPI0_Init()
{
   SPI0CFG   = 0x60;                   // Enable the SPI as a Master
                                       // CKPHA = '0', CKPOL = '0'
   SPI0CN    = 0x0D;                   // 4-wire Single Master, SPI enabled

   // SPI clock frequency equation from the datasheet
   SPI0CKR   = (SYSCLK/(2*SPI_CLOCK))-1;

   //ESPI0 = 1;                          // Enable SPI interrupts
}

void UART0_Init (void)
{
	// SCON0: 8-bit variable bit rate
	//        level of STOP bit is ignored
	//        RX enabled
	//        ninth bits are zeros
	//        clear RI0 and TI0 bits
    SCON0 = 0x10;                       
	CKCON     = 0x08;
	TH1       = 0xCC;  //Using sysclk 12MHz and buad rate is 115200
	TL1 = TH1;                          // Init Timer1
	TMOD &= ~0xf0;                      // TMOD: timer 1 in 8-bit autoreload
	TMOD |=  0x20;
	TR1 = 1;                            // START Timer1
	TI0 = 1;                            // Indicate TX0 ready
}

void LT8900_Init(void)
{
	RESET_N = 0; 	
	delay_us(1000);
	RESET_N = 1; 		//Enable 6210
	CLK = 0; //set SPI clock to low
	delay_us(50000); //delay 5ms to let LT6210 stable
	
#if 1  //test
	LT_WriteReg(0, 0x6F, 0xE0);
	LT_WriteReg(1, 0x56, 0x81);

	LT_WriteReg(2, 0x66, 0x17);
	LT_WriteReg(4, 0x9C, 0xC9);
	LT_WriteReg(5, 0x66, 0x37);
	LT_WriteReg(7, 0x00, 0x00);
	LT_WriteReg(8, 0x6C, 0x90);
	LT_WriteReg(9, 0x18, 0x40);
	LT_WriteReg(10, 0x7F, 0xFD);
	LT_WriteReg(11, 0x00, 0x08);
	LT_WriteReg(12, 0x00, 0x00);
	LT_WriteReg(13, 0x48, 0xBD);

	LT_WriteReg(22, 0x00, 0xff);
	LT_WriteReg(23, 0x80, 0x05);
	LT_WriteReg(24, 0x00, 0x67);
	LT_WriteReg(25, 0x16, 0x59);
	LT_WriteReg(26, 0x19, 0xE0);
	LT_WriteReg(27, 0x12, 0x00);
	LT_WriteReg(28, 0x18, 0x00);
	
	LT_WriteReg(32, 0x50, 0x00);
	LT_WriteReg(33, 0x3f, 0xC7);
	LT_WriteReg(34, 0x30, 0x00);
	LT_WriteReg(35, 0x03, 0x20);
	LT_WriteReg(36, 0x03, 0x80);
	LT_WriteReg(37, 0x03, 0x80);
	LT_WriteReg(38, 0x5A, 0x5A);
	LT_WriteReg(39, 0x03, 0x80);
	LT_WriteReg(40, 0x44, 0x01);
	LT_WriteReg(41, 0xe0, 0x00);
	LT_WriteReg(42, 0xFD, 0xB0);
	LT_WriteReg(43, 0x00, 0x0F);
	LT_WriteReg(50, 0x00, 0x00);
#endif			
	delay_us(2000); //delay 10ms to let LT6210 for operation	

}
//=======================================================================

//=======================================================================
// SPI Routing
//=======================================================================

void SPI_SendFrame (void)
{
		unsigned char j;

		SS = 0;
		for (j=0; j<tlen; j++)
			RBUF[j] = SPI_SendByte(TBUF[j]);
		SS = 1;
}

void SPI_CleanBuffer (void)
{
	register char i;
	for (i = 0; i<BUFLEN; i++)	RBUF[i] = 0;
}

#if _DEBUG_SPI_
unsigned char SPI_SendByte(unsigned char buf)
{
	int i = 0;
	unsigned char retVal;
    while (!NSSMD0);                    // Wait until the SPI is free, in case
                                       // it's already busy

    NSSMD0 = 0;
	for(i=0;i<10;i++);
	SPI0DAT = buf;
	for(i=0;i<10;i++);
	retVal  = SPI0DAT;
	for(i=0;i<10;i++);
	NSSMD0 = 1;			
}
#endif
//==========================================================
// LT8900 Routing
//==========================================================
#if 0
void LT_ReadReg(unsigned char reg)
{
	int i=0;
	SS = 0;
	for(i=0;i<10;i++);
	reg = SPI_SendByte(reg+0x80);
	for(i=0;i<10;i++);
	RegH = SPI_SendByte(0xFF);
	for(i=0;i<10;i++);
	RegL = SPI_SendByte(0xFF);
	for(i=0;i<10;i++);
	SS = 1;
}
#endif 

#if _DEBUG_SPI_
void LT_ReadReg(unsigned char reg)
{
   int i = 0;
   while (!NSSMD0);                    // Wait until the SPI is free, in case
                                       // it's already busy

    NSSMD0 = 0;
	for(i=0;i<10;i++);
	SPI0DAT = reg+0x80;
	for(i=0;i<10;i++);
	SPI0DAT = 0xFF;
	for(i=0;i<10;i++);
	RegH = SPI0DAT;
	for(i=0;i<10;i++);
	SPI0DAT = 0xFF;
	for(i=0;i<10;i++);
	RegL = SPI0DAT;
	for(i=0;i<10;i++);
	NSSMD0 = 1;	
}
#endif

#if 0
void LT_WriteReg(unsigned char reg, unsigned char H, unsigned char L)
{
	int i = 0;
	SS = 0;
	for(i=0;i<10;i++);
	reg = SPI_SendByte(reg);
	for(i=0;i<10;i++);
	RegH = SPI_SendByte(H);
	for(i=0;i<10;i++);
	RegL = SPI_SendByte(L);
	for(i=0;i<10;i++);
	SS = 1;
}
#endif

#if _DEBUG_SPI_
void LT_WriteReg(unsigned char reg, unsigned char H, unsigned char L)
{
	int i = 0;
	//SPI_Byte_Write(H);
   while (!NSSMD0);                    // Wait until the SPI is free, in case
                                       // it's already busy
   NSSMD0 = 0;
   for(i=0;i<10;i++);
   SPI0DAT = reg;
   for(i=0;i<10;i++);
   SPI0DAT = H;
   for(i=0;i<10;i++);
   SPI0DAT = L;
   for(i=0;i<10;i++);
   NSSMD0 = 1;
}
#endif

void LT_SetSyncWord (void)
{
		TBUF[0] = 0x24; //reg36 to reg39
		TBUF[1] = SYNCWORD_0;
		TBUF[2] = SYNCWORD_1;
		TBUF[3] = SYNCWORD_2;
		TBUF[4] = SYNCWORD_3;
		TBUF[5] = SYNCWORD_4;
		TBUF[6] = SYNCWORD_5;
		TBUF[7] = SYNCWORD_6;
		TBUF[8] = SYNCWORD_7;
		tlen = 9;
		SPI_SendFrame();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精选在线视频| 91黄色小视频| 日本不卡一区二区三区| 一区二区三区av电影| 中文字幕av一区二区三区高| 国产亚洲欧美激情| 国产人久久人人人人爽| 国产嫩草影院久久久久| 中文字幕国产一区二区| 亚洲人午夜精品天堂一二香蕉| 国产精品对白交换视频| 亚洲精品乱码久久久久久日本蜜臀| 亚洲图片激情小说| 一卡二卡三卡日韩欧美| 日韩综合小视频| 久久狠狠亚洲综合| 国产成人免费在线观看| 99免费精品视频| 欧美专区日韩专区| 欧美一级日韩不卡播放免费| 精品国产百合女同互慰| wwwwxxxxx欧美| 亚洲视频你懂的| 亚洲h动漫在线| 国模套图日韩精品一区二区| 国产成人一级电影| 欧美亚洲日本一区| 精品少妇一区二区三区在线播放 | 久久综合色婷婷| 久久久久久亚洲综合影院红桃| 国产精品久久久久久久久免费樱桃| 亚洲欧美在线视频| 三级久久三级久久| 成人性生交大片免费看在线播放| 91色.com| 久久色成人在线| 亚洲另类在线视频| 经典一区二区三区| 一本到高清视频免费精品| 日韩欧美中文字幕公布| 亚洲欧洲另类国产综合| 日本免费新一区视频| 国产成人av福利| 91精品国产aⅴ一区二区| 国产欧美日韩精品一区| 亚洲高清视频中文字幕| 国产成人在线色| 日韩一区二区免费在线观看| 亚洲人成在线观看一区二区| 精品一区二区三区久久| 精品污污网站免费看| 国产欧美视频一区二区三区| 一区二区三区欧美亚洲| 高清视频一区二区| 91精品国产综合久久福利软件 | 婷婷综合五月天| 大胆欧美人体老妇| 欧美白人最猛性xxxxx69交| 亚洲精品视频在线看| 国产成人在线视频播放| 日韩欧美在线观看一区二区三区| 亚洲美女免费在线| 成人中文字幕在线| 久久中文字幕电影| 青青草国产成人99久久| 在线一区二区三区| 亚洲视频 欧洲视频| 国产99久久久精品| 国产亚洲一区字幕| 国产精品一二三四五| 日韩一级在线观看| 日韩av中文在线观看| 欧美视频一区二区三区| 亚洲综合一二三区| 色婷婷av一区| 一级做a爱片久久| 91成人看片片| 无码av免费一区二区三区试看| 欧美伊人久久久久久午夜久久久久| 国产精品午夜电影| 成人av在线资源网| 亚洲四区在线观看| 在线免费观看日本一区| 亚洲最大成人综合| 欧美日韩久久久久久| 亚洲综合丁香婷婷六月香| 欧美三级日韩在线| 偷拍亚洲欧洲综合| 欧美成人猛片aaaaaaa| 欧美aaa在线| 久久精品男人天堂av| 国产99精品国产| 亚洲精品菠萝久久久久久久| 91福利在线免费观看| 亚洲福利视频一区| 精品伦理精品一区| 懂色av中文一区二区三区| 中文字幕一区二区不卡 | 欧美肥大bbwbbw高潮| 日一区二区三区| 欧美xxxx老人做受| 99久久婷婷国产综合精品电影| 一区二区三区在线观看动漫| 欧美视频日韩视频在线观看| 美女网站色91| 一色屋精品亚洲香蕉网站| 欧洲一区二区三区免费视频| 日韩精品一区第一页| 国产日韩欧美激情| 在线免费视频一区二区| 国产一区二区电影| 亚洲激情校园春色| 精品国产乱子伦一区| 91网上在线视频| 寂寞少妇一区二区三区| 亚洲精品大片www| 久久久久久99久久久精品网站| 91免费视频观看| 捆绑变态av一区二区三区| 亚洲三级电影全部在线观看高清| 欧美日韩中字一区| 99精品黄色片免费大全| 理论电影国产精品| 伊人夜夜躁av伊人久久| 久久亚洲影视婷婷| 欧美精品免费视频| 99久久精品免费看| 精品一区二区av| 五月天一区二区三区| 亚洲精品第一国产综合野| 久久久久久久久久久99999| 宅男在线国产精品| 在线视频国内一区二区| 成人精品免费视频| 国精产品一区一区三区mba桃花| 亚洲在线视频网站| 中文字幕一区二区三| 久久精品人人做人人综合| 日韩欧美一二三区| 欧美日韩一级二级| 日本精品视频一区二区三区| 国产成人aaa| 国产原创一区二区| 喷水一区二区三区| 免费精品99久久国产综合精品| 亚洲麻豆国产自偷在线| 国产欧美一区在线| 久久精品视频一区二区三区| 日韩精品一区二区三区三区免费 | 国产精品资源在线| 麻豆国产欧美一区二区三区| 亚洲成人自拍网| 五月综合激情日本mⅴ| 亚洲成年人影院| 日韩精品一级二级| 日韩av不卡一区二区| 天天影视色香欲综合网老头| 亚洲一区二区影院| 亚洲国产日韩a在线播放| 一区二区三区毛片| 亚洲欧美日韩中文播放| 一区二区三区高清在线| 亚洲国产精品一区二区久久 | 欧美肥妇free| 欧美一级免费大片| 精品电影一区二区| 国产欧美久久久精品影院| 国产精品天天看| 亚洲人午夜精品天堂一二香蕉| 亚洲免费av高清| 亚洲丰满少妇videoshd| 裸体一区二区三区| 久草热8精品视频在线观看| 国产麻豆一精品一av一免费| 国产成人综合视频| 91久久精品一区二区三区| 欧美三级中文字幕| 亚洲精品一区二区三区精华液| 国产亚洲欧美色| 亚洲精品欧美专区| 丝袜美腿亚洲综合| 国产一区在线视频| 色女孩综合影院| 91精品国产综合久久久久久久| 精品成人一区二区三区四区| 中文字幕精品—区二区四季| 亚洲一区在线观看免费观看电影高清| 图片区日韩欧美亚洲| 成人丝袜18视频在线观看| 欧洲另类一二三四区| 欧美精品一区二区三区高清aⅴ| 欧美经典三级视频一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 亚洲成精国产精品女| 大陆成人av片| 7777精品伊人久久久大香线蕉| 久久色.com| 亚洲成人免费看| 国产精品亚洲午夜一区二区三区| 在线精品视频一区二区|