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

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

?? main.c

?? A7125無線模塊
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*********************************************************************                                                                   **
**  Device:     A7125
**  File:		main.c
**  Author:		JPH
**  Target:		Winbond W77LE58
**  Tools:		ICE
**  Created:	2009-04-22
**  Description:
**  This file is a sample code for your reference.
**
**  Copyright (C) 2008 AMICCOM Corp.
**
*********************************************************************/
#include "define.h"
#include "w77le58.h"
#include "a7125reg.h"
#include "Uti.h"

/*********************************************************************
**  I/O Declaration
*********************************************************************/
#define SCS       	P1_0		//spi SCS
#define SCK      	P1_1		//spi SCK
#define SDIO      	P1_2		//spi SDIO
#define CKO       	P1_3		//CKO
#define GIO1      	P1_4		//GIO1
#define GIO2    	P1_5		//GIO2

/*********************************************************************
**  Constant Declaration
*********************************************************************/
#define TIMEOUT     	50
#define t0hrel      	1000

/*********************************************************************
**  Global Variable Declaration
*********************************************************************/
Uint8		data 	timer;
Uint8		data 	TimeoutFlag;
Uint16		idata 	RxCnt;
Uint32		idata	Err_ByteCnt;
Uint32		idata	Err_BitCnt;
Uint16		idata	TimerCnt0;
Uint8      	data    *Uartptr;
Uint8		data	UartSendCnt;
Uint8		data	CmdBuf[12];
Uint8		xdata	tmpbuf[64];
Uint8       idata   Err_Frame;

const Uint8 code BitCount_Tab[16] = {0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4};
const Uint8 code ID_Tab[4]={0x34,0x75,0xC5,0x2A}; //ID code
const Uint8 code PN9_Tab[]=
{   0xFF,0x83,0xDF,0x17,0x32,0x09,0x4E,0xD1,
    0xE7,0xCD,0x8A,0x91,0xC6,0xD5,0xC4,0xC4,
    0x40,0x21,0x18,0x4E,0x55,0x86,0xF4,0xDC,
    0x8A,0x15,0xA7,0xEC,0x92,0xDF,0x93,0x53,
    0x30,0x18,0xCA,0x34,0xBF,0xA2,0xC7,0x59,
    0x67,0x8F,0xBA,0x0D,0x6D,0xD8,0x2D,0x7D,
    0x54,0x0A,0x57,0x97,0x70,0x39,0xD2,0x7A,
    0xEA,0x24,0x33,0x85,0xED,0x9A,0x1D,0xE0
};	// This table are 64bytes PN9 pseudo random code.

const Uint16 code A7125Config[]=
{
	0x00, //MODE register,		only reset, not use on config
	0x42, //MODE CTRL register,
	0x00, //CALIBRATION register,
	0x3F, //FIFO1 register,
	0x00, //FIFO2 register,
	0x00, //FIFO register,		for fifo read/write
	0x00, //IDDATA register,	for idcode
	0x00, //RCOSC1 register,
	0x00, //RCOSC2 register,
	0x00, //RCOSC3 register,
	0x00, //CKO register,
	0x01, //GPIO1 register
	0x00, //GPIO2 register,
	0x1F, //DATARATE register,
	0x50, //PLL1 register,
	0x0E, //PLL2 register, 		RFbase 2400.001MHz
	0x96, //PLL3 register,
	0x00, //PLL4 register,
	0x04, //PLL5 register,
	0x3C, //chanel group I,
	0x78, //chanel group II,
	0xD7, //TX1 register,
	0x40, //TX2 register,
	0x10, //DELAY1 register,
	0x61, //DELAY2 register,
	0x62, //RX register,
	0xA0, //RXGAIN1 register,
	0x00, //RXGAIN2 register,
	0x00, //RXGAIN3 register,
	0xD2, //RXGAIN4 register,
	0x00, //RSSI register,
	0xE2, //ADC register,
	0x07, //CODE1 register,
	0x56, //CODE2 register,
	0x2A, //CODE3 register,
	0x06, //IFCAL1 register,
	0x00, //IFCAL2 register,    only read
	0x05, //VCOCCAL register,
	0x44, //VCOCAL1 register,
	0x80, //VCOCAL2 register,
	0x30, //VCO DEV Cal. I register,
	0x20, //VCO DEV Cal. II register,
	0x80, //VCO DEV Cal. III register,
	0x00, //VCO Mod. delay register
	0x7A, //BATTERY register,
	0x2F, //TXTEST register,
	0x47, //RXDEM1 register,
	0x80, //RXDEM2 register,
	0xF1, //CPC1 register,
	0x11, //CPC2 register,
	0x04, //CRYSTAL register,
	0x45, //PLLTEST register,
	0x18, //VCOTEST register,
    0x10, //RF Analog Test
	0xFF, //IFAT register,
	0x37, //Channel select register,
	0xFF  //VRB register
};

/*********************************************************************
**  function Declaration
*********************************************************************/
void InitTimer0(void);
void initUart0(void);
void Timer0ISR (void);
void Uart0Isr(void);
void A7125_Reset(void);
void A7125_WriteReg(Uint8, Uint8);
Uint8 A7125_ReadReg(Uint8);
void ByteSend(Uint8 src);
Uint8 ByteRead(void);
void A7125_WriteID(void);
void A7125_WriteFIFO(void);
void initRF(void);
void A7125_Config(void);
void A7125_Cal(void);
void RxPacket(void);
void StrobeCmd(Uint8);
void SetCH(Uint8);
void CHGroupCal(Uint8);

/*********************************************************************
* main loop
*********************************************************************/
void main(void)
{
    //initsw
    PMR |= 0x01; //set DME0

    //initHW
    P0 = 0xFF;
    P1 = 0xFF;
    P2 = 0xFF;
    P3 = 0xFF;
    P4 = 0x0F;

    InitTimer0();
    initUart0();
    TR0=1;
    EA=1;

	if ((P4 & 0x04)==0x04) //if P4.2=1, master
	{
		initRF();
        StrobeCmd(CMD_STBY);

		while(1)
		{
		    A7125_WriteFIFO(); //write data to tx fifo
		    SetCH(100); //freq 2450.001MHz
   		    StrobeCmd(CMD_TX); //entry tx
    		while(GIO1); //wait transmit completed

    		SetCH(96); //freq 2448.001MHz
    		StrobeCmd(CMD_RX); //entry rx

    		timer=0;
			TimeoutFlag=0;
			while(GIO1==1 && TimeoutFlag==0); //wait receive completed
			if (TimeoutFlag)
			{
			    StrobeCmd(CMD_STBY); //exit rx mode
				continue;
			}

		    RxPacket();
            Delay10ms(1);
    	}
	}
	else //if P4.2=0, slave
	{
		initRF();
		StrobeCmd(CMD_STBY);

		RxCnt = 0;
		Err_ByteCnt = 0;
		Err_BitCnt = 0;
    	TR0 = 1;

		while(1)
        {
            SetCH(96); //freq 2448.001MHz
            StrobeCmd(CMD_RX); //entry rx
    	    while(GIO1); //wait receive completed
   			RxPacket();

		    A7125_WriteFIFO(); //write data to tx fifo
		    SetCH(100); //freq 2450.001MHz
   		    StrobeCmd(CMD_TX); //entry tx
    		while(GIO1); //wait transmit completed
        }
	}
}

/************************************************************************
**  init Timer0
************************************************************************/
void InitTimer0(void)
{
    TR0 = 0;
    TMOD =(TMOD & 0xF0)|0x01; //timer0 mode=1
    TH0 = (65536-t0hrel)>>8; // Reload Timer0 high byte,low byte
    TL0 = 65536-t0hrel;
    TF0 = 0; // Clear any pending Timer0 interrupts
    ET0 = 1; // Enable Timer0 interrupt
}

/************************************************************************
**  Timer0ISR
************************************************************************/
void Timer0ISR (void) interrupt 1
{
    TF0 = 0; // Clear Timer0 interrupt
    TH0 = (65536-t0hrel)>>8; // Reload Timer0 high byte,low byte
    TL0 = 65536-t0hrel;

    timer++;
    if (timer == TIMEOUT)
    {
        TimeoutFlag=1;
    }

    TimerCnt0++;
    if (TimerCnt0 == 500)
    {
        TimerCnt0 = 0;
        CmdBuf[0] = 0xF1;

        memcpy(&CmdBuf[1], &RxCnt, 2);
        memcpy(&CmdBuf[3], &Err_ByteCnt, 4);
        memcpy(&CmdBuf[7], &Err_BitCnt, 4);
        memcpy(&CmdBuf[11], &Err_Frame, 1);

        UartSendCnt = 12;
		Uartptr =& CmdBuf[0];
        SBUF = CmdBuf[0];
    }
}

/************************************************************************
**  Init Uart0
************************************************************************/
void initUart0(void)
{
    TH1 = 0xFD; //BaudRate 9600;
    TL1 = 0xFD;
    SCON = 0x40;
    TMOD = (TMOD & 0x0F) | 0x20;
    REN = 1;
    TR1 = 1;
    ES = 1;
}

/************************************************************************
**  Uart0 ISR
************************************************************************/
void Uart0Isr(void) interrupt 4 using 3
{
    if (TI==1)
    {
        TI=0;
        UartSendCnt--;
        if(UartSendCnt !=0)
        {
            Uartptr++;
            SBUF = *Uartptr;
        }
    }
}

/************************************************************************
**  Reset_RF
************************************************************************/
void A7125_Reset(void)
{
	A7125_WriteReg(MODE_REG, 0x00); //reset RF chip
}

/************************************************************************
**  WriteID
************************************************************************/
void A7125_WriteID(void)
{
	Uint8 i;
	Uint8 d1,d2,d3,d4;
	Uint8 addr;

	addr = IDCODE_REG; //send address 0x06, bit cmd=0, r/w=0
	SCS = 0;
	ByteSend(addr);
	for (i=0; i < 4; i++)
		ByteSend(ID_Tab[i]);
	SCS = 1;

    //for check
	addr = IDCODE_REG | 0x40; //send address 0x06, bit cmd=0, r/w=1
	SCS=0;
	ByteSend(addr);
	d1=ByteRead();
	d2=ByteRead();
	d3=ByteRead();
	d4=ByteRead();
	SCS=1;
}

/************************************************************************
**  A7125_WriteReg
************************************************************************/
void A7125_WriteReg(Uint8 addr, Uint8 dataByte)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女在线视频一区| 国产乱码精品一区二区三区忘忧草| 性感美女极品91精品| 老鸭窝一区二区久久精品| 91在线播放网址| 久久久久久久久99精品| 亚洲一区二区三区国产| 高清beeg欧美| 精品国产sm最大网站免费看| 午夜不卡av在线| 91黄色免费版| 国产精品久久久久久亚洲伦| 国产在线精品一区在线观看麻豆| 欧美性色黄大片手机版| 18成人在线视频| 丁香网亚洲国际| 久久精品人人做人人爽97| 奇米888四色在线精品| 欧美视频完全免费看| 亚洲男人的天堂av| 91在线精品一区二区| 中国av一区二区三区| 国产一区二区三区在线观看免费视频 | 欧洲一区二区三区在线| 国产精品午夜在线| 国产suv精品一区二区三区| 欧美电视剧免费全集观看| 午夜国产不卡在线观看视频| 欧美视频一二三区| 亚洲国产综合人成综合网站| 欧美自拍偷拍午夜视频| 一区二区免费在线| 欧美亚洲图片小说| 午夜视频一区在线观看| 91精品国产综合久久久久久久 | 91丨porny丨在线| 亚洲人吸女人奶水| 成人免费毛片嘿嘿连载视频| 国产欧美精品一区aⅴ影院| 成人中文字幕在线| 国产精品不卡在线| 91久久精品一区二区| 一区二区高清免费观看影视大全 | 国产一区二区三区精品欧美日韩一区二区三区 | 欧美第一区第二区| 国产精品主播直播| 亚洲三级电影全部在线观看高清| 一本在线高清不卡dvd| 亚洲成人av在线电影| 日韩限制级电影在线观看| 国产一区二区三区最好精华液| 国产人伦精品一区二区| 91在线观看污| 婷婷中文字幕综合| 久久精品亚洲精品国产欧美 | 国产综合色产在线精品| 国产精品入口麻豆九色| 欧洲精品在线观看| 麻豆成人久久精品二区三区红| 国产日本欧洲亚洲| 在线观看成人小视频| 激情亚洲综合在线| 一区二区在线观看免费视频播放| 91精品国产综合久久久久久久久久 | 久久亚洲二区三区| 91丨九色丨尤物| 免费成人小视频| 18涩涩午夜精品.www| 日韩亚洲国产中文字幕欧美| 成人免费电影视频| 日韩电影免费在线看| 国产精品嫩草影院com| 欧美日韩一区二区电影| 国产91丝袜在线播放0| 午夜精品aaa| 国产精品久久久久久久久久久免费看 | 精品999久久久| 色狠狠一区二区| 国产黄色91视频| 日韩在线观看一区二区| 国产精品久久福利| 久久综合色之久久综合| 欧美日韩黄色影视| 97精品国产露脸对白| 国产伦精一区二区三区| 午夜天堂影视香蕉久久| 国产精品福利一区| 欧美精品一区二区久久久| 欧美日韩在线免费视频| 91国偷自产一区二区三区成为亚洲经典 | 国产成人在线免费观看| 日韩精品久久久久久| 亚洲乱码国产乱码精品精98午夜| 久久网站最新地址| 欧美一区二区三区四区五区 | 国产精品69久久久久水密桃| 天天综合色天天综合| 一级特黄大欧美久久久| 亚洲日本在线天堂| 国产精品久久久久7777按摩| 国产婷婷色一区二区三区四区| 日韩欧美国产综合| 日韩一区二区免费在线电影| 欧美另类一区二区三区| 欧美视频完全免费看| 欧洲色大大久久| 欧美亚洲国产一区二区三区| 91免费精品国自产拍在线不卡| 成人精品视频网站| 成人中文字幕电影| 成人性视频网站| 福利一区二区在线观看| 懂色av噜噜一区二区三区av| 国产精品99久久久久| 国产乱妇无码大片在线观看| 国产成人亚洲综合色影视| 国产一区二区三区在线观看免费 | 欧美精品乱人伦久久久久久| 色欧美日韩亚洲| 一本大道综合伊人精品热热| 97成人超碰视| 在线观看中文字幕不卡| 在线观看三级视频欧美| 欧美系列在线观看| 在线电影欧美成精品| 日韩三级视频中文字幕| 日韩一级大片在线| 国产婷婷色一区二区三区四区 | 三级不卡在线观看| 麻豆一区二区99久久久久| 久久成人免费网站| 丰满少妇在线播放bd日韩电影| eeuss影院一区二区三区| 91色视频在线| 日韩午夜在线观看视频| 国产婷婷色一区二区三区在线| 中文字幕在线一区二区三区| 亚洲在线观看免费视频| 精品在线你懂的| www.激情成人| 制服丝袜一区二区三区| 久久久噜噜噜久久人人看 | 国产午夜精品一区二区三区视频| 中文文精品字幕一区二区| 亚洲综合另类小说| 精品一区二区在线看| 99热这里都是精品| 日韩欧美国产午夜精品| **性色生活片久久毛片| 天堂久久一区二区三区| 国产寡妇亲子伦一区二区| 色成年激情久久综合| 日韩视频在线观看一区二区| 国产精品嫩草影院av蜜臀| 日韩国产精品久久久| 成人高清视频免费观看| 欧美一级二级在线观看| 日韩一区欧美一区| 日本欧美韩国一区三区| 91社区在线播放| 久久久天堂av| 日韩精品久久久久久| 99re66热这里只有精品3直播| 欧美一级片免费看| 亚洲乱码国产乱码精品精的特点| 国精产品一区一区三区mba视频 | 一区二区三区欧美激情| 国产麻豆91精品| 91精品国产综合久久久久久久久久| 国产精品久久午夜夜伦鲁鲁| 蜜臀av性久久久久av蜜臀妖精| 99re6这里只有精品视频在线观看| 精品少妇一区二区| 亚洲亚洲精品在线观看| 99精品热视频| 国产三级三级三级精品8ⅰ区| 日本中文字幕一区二区有限公司| 99精品在线免费| 欧美激情艳妇裸体舞| 精品无人码麻豆乱码1区2区| 欧美精品一二三区| 亚洲综合999| 色综合久久久久久久久| 欧美激情综合在线| 国产精品自拍在线| 日韩你懂的电影在线观看| 日韩**一区毛片| 欧美精品乱人伦久久久久久| 亚洲在线中文字幕| 久久综合狠狠综合| 日本麻豆一区二区三区视频| 欧美日韩在线电影| 亚洲成a人v欧美综合天堂下载| 在线国产电影不卡| 一区二区三区成人在线视频| 91丨porny丨最新| 一区二区三区久久久| 日本高清成人免费播放| 一区二区三区.www| 欧美无乱码久久久免费午夜一区 |