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

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

?? lt8900_receive_main.#2

?? LT8900
?? #2
字號:
 //----------------------------------------------------
//   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();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲1区2区3区4区| 老司机免费视频一区二区| 欧美一区二区三区日韩| 国产不卡视频在线观看| 亚洲一区二区三区免费视频| 日韩一区二区三区电影在线观看 | 国产一区二区三区av电影| 亚洲欧美一区二区三区孕妇| 欧美大片顶级少妇| 欧美伊人久久久久久午夜久久久久| 国产原创一区二区三区| 日韩av网站在线观看| 亚洲精品国产精品乱码不99| 久久久美女毛片| 欧美一区二区三区视频免费播放| 色综合中文字幕国产 | 欧美日韩一级片网站| 国产精品一二一区| 麻豆一区二区在线| 日韩中文欧美在线| 亚洲韩国精品一区| 亚洲精品你懂的| 亚洲色欲色欲www| 欧美国产精品久久| 久久尤物电影视频在线观看| 91精品国产色综合久久ai换脸| 91日韩在线专区| av动漫一区二区| yourporn久久国产精品| 粉嫩一区二区三区在线看| 国产一区二区电影| 韩国v欧美v亚洲v日本v| 蜜臀久久久99精品久久久久久| 亚洲国产精品久久久久秋霞影院 | 久久99精品久久久久久| 天天av天天翘天天综合网色鬼国产| 一区二区三区中文字幕精品精品 | 欧美日韩一级二级| 欧美日韩一区二区三区在线| 欧美最猛黑人xxxxx猛交| av一二三不卡影片| 成人黄色软件下载| 成人福利视频在线| 91女厕偷拍女厕偷拍高清| 91女厕偷拍女厕偷拍高清| 成人av电影在线| youjizz国产精品| 色综合久久综合| 在线视频综合导航| 制服丝袜日韩国产| 日韩精品一区二区三区视频| 2020日本不卡一区二区视频| 久久综合九色综合97_久久久| 精品国产乱码久久久久久免费 | 国产精品私人自拍| 老司机免费视频一区二区| 日本不卡一区二区三区| 麻豆精品在线视频| 国产激情视频一区二区在线观看| 国产福利一区二区三区视频| www..com久久爱| 欧美性生交片4| 欧美一区二区成人6969| 久久久久久夜精品精品免费| 亚洲国产成人在线| 一区二区三区成人| 久久精品国产免费看久久精品| 国产一区视频导航| caoporm超碰国产精品| 欧美在线看片a免费观看| 91麻豆精品国产91久久久资源速度| 精品少妇一区二区三区免费观看| 国产清纯在线一区二区www| 国产精品久久久久桃色tv| 一区二区三区精品久久久| 麻豆精品视频在线观看免费| 国产成人av一区二区三区在线| 色88888久久久久久影院野外| 欧美人xxxx| 2020国产精品自拍| 一区二区免费在线| 久久成人久久爱| 色综合久久久久久久久久久| 日韩一区二区免费电影| 中文字幕精品一区二区三区精品| 一区二区三区影院| 久久精品国产99国产精品| 99国产精品一区| 精品卡一卡二卡三卡四在线| 亚洲色大成网站www久久九九| 青青草91视频| 一本色道久久综合亚洲精品按摩| 日韩欧美美女一区二区三区| 亚洲乱码中文字幕| 国产在线国偷精品产拍免费yy | 日本一区二区免费在线观看视频 | 日韩视频123| 亚洲人xxxx| 国产精品18久久久久久久久 | 亚洲精品一线二线三线无人区| 亚洲三级免费电影| 国产麻豆日韩欧美久久| 欧美日韩在线不卡| 亚洲欧美视频在线观看视频| 国产精品99久久久久久久vr | 欧美妇女性影城| 国产精品传媒视频| 国产毛片精品国产一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久女同性恋中文字幕| 日本特黄久久久高潮| 色婷婷亚洲婷婷| 国产女同互慰高潮91漫画| 青青草国产精品97视觉盛宴 | 欧美这里有精品| 中文字幕一区二区三中文字幕| 国产资源精品在线观看| 欧美日本在线播放| 一区二区三区在线视频观看58| 本田岬高潮一区二区三区| 国产色产综合色产在线视频| 久久国产综合精品| 69堂成人精品免费视频| 视频一区中文字幕| 欧美精品视频www在线观看| 亚洲精选免费视频| 91视视频在线观看入口直接观看www| 国产偷国产偷精品高清尤物| 另类小说欧美激情| 欧美mv日韩mv国产网站| 麻豆精品一区二区综合av| 日韩一区二区在线看| 美女任你摸久久 | 国产色91在线| 国产精品小仙女| 日本一区二区在线不卡| 成人成人成人在线视频| 一区二区中文字幕在线| 91免费国产视频网站| 一区二区三区在线免费视频| 日本高清免费不卡视频| 亚洲国产精品精华液网站| 欧美日韩国产一级片| 欧美bbbbb| 久久亚洲综合色| 成年人国产精品| 亚洲色图在线视频| 欧美日韩亚洲丝袜制服| 性做久久久久久免费观看| 在线观看91av| 激情综合色播五月| 中文字幕不卡在线| 欧美影院精品一区| 免费成人美女在线观看.| 久久精品亚洲乱码伦伦中文| 高清视频一区二区| 亚洲精品免费视频| 欧美肥妇free| 国产ts人妖一区二区| 亚洲人成小说网站色在线 | 欧美大肚乱孕交hd孕妇| 国产一区二区三区免费在线观看| 国产精品午夜电影| 91激情在线视频| 久久99这里只有精品| 欧美激情一区二区三区四区| 日本精品一区二区三区高清| 日韩av电影一区| 日本一区二区三区国色天香| 色综合久久久久综合体桃花网| 亚洲午夜精品在线| 久久影院午夜论| 欧洲另类一二三四区| 精品一区在线看| 最新欧美精品一区二区三区| 欧美日韩国产乱码电影| 激情六月婷婷综合| 一区二区三区在线免费视频| 精品日韩在线一区| 91老师片黄在线观看| 久久精品二区亚洲w码| 亚洲日本va午夜在线影院| 91精品国产91久久久久久一区二区| 日韩视频免费观看高清完整版| 成人小视频免费在线观看| 亚洲h动漫在线| 国产精品沙发午睡系列990531| 欧美三级电影网站| 波多野结衣在线aⅴ中文字幕不卡| 亚洲一级二级在线| 中文字幕 久热精品 视频在线 | 91啪亚洲精品| 久久99精品一区二区三区| 亚洲另类中文字| 国产亚洲短视频| 欧美一级淫片007| 色综合久久中文综合久久牛| 国内精品国产三级国产a久久| 亚洲国产综合视频在线观看| 国产精品国产精品国产专区不蜜|