亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲欧美一区二区三区国产精品| 日本亚洲天堂网| 3d成人动漫网站| 精品乱人伦小说| 国产精品成人一区二区三区夜夜夜| 亚洲日本韩国一区| 免费日本视频一区| 成人精品亚洲人成在线| 欧美日韩在线一区二区| 久久日一线二线三线suv| 国产人妖乱国产精品人妖| 国产精品污污网站在线观看| 亚洲成人一二三| 麻豆精品精品国产自在97香蕉 | 久久久久国产成人精品亚洲午夜| 精品日韩99亚洲| 亚洲色图色小说| 蜜臀久久99精品久久久久宅男| 成人爽a毛片一区二区免费| 欧美日韩视频不卡| 1024成人网| 国产成人亚洲综合a∨婷婷图片| 欧美日韩一区国产| 国产精品久久毛片| 久久99精品网久久| 7777精品久久久大香线蕉 | 亚洲福利一区二区三区| 国产精品 欧美精品| 91精品午夜视频| 亚洲黄一区二区三区| 高清国产一区二区| 欧美变态口味重另类| 奇米色777欧美一区二区| 在线区一区二视频| 中文字幕日韩一区| eeuss鲁片一区二区三区在线看| 日韩精品一区二区三区老鸭窝| 日本v片在线高清不卡在线观看| 在线观看日韩电影| 亚洲美女屁股眼交3| 99久久亚洲一区二区三区青草| 久久精品一区蜜桃臀影院| 国内国产精品久久| 精品少妇一区二区三区日产乱码| 婷婷亚洲久悠悠色悠在线播放| av资源站一区| 国产精品理伦片| av亚洲精华国产精华| 国产精品久久久一本精品| 蜜桃精品视频在线| 欧美mv日韩mv国产网站| 秋霞午夜鲁丝一区二区老狼| 日韩片之四级片| 久久国产三级精品| 久久久天堂av| 国产91高潮流白浆在线麻豆| 国产日本欧美一区二区| 成人做爰69片免费看网站| 国产精品进线69影院| 99re视频精品| 亚洲成人免费观看| 欧美日韩国产高清一区二区| 亚洲国产另类av| 欧美猛男男办公室激情| 午夜精品免费在线| 日韩一区二区免费电影| 伦理电影国产精品| 欧美激情在线一区二区| 懂色av噜噜一区二区三区av| 国产婷婷色一区二区三区在线| 成人在线一区二区三区| 国产欧美日韩综合| 欧洲日韩一区二区三区| 久久99精品久久久久久久久久久久| 精品国产青草久久久久福利| 国产成人综合在线| 一区二区三区在线免费播放| 51午夜精品国产| 国产原创一区二区三区| 亚洲国产三级在线| 国产精品嫩草久久久久| 欧美成人精品二区三区99精品| 91九色最新地址| 成人av午夜电影| 极品瑜伽女神91| 午夜婷婷国产麻豆精品| 1024精品合集| 国产午夜精品一区二区三区嫩草| 欧美裸体一区二区三区| heyzo一本久久综合| 精品亚洲免费视频| 视频一区在线视频| 一区二区理论电影在线观看| 日本一区二区综合亚洲| 日韩欧美国产综合一区| 欧美综合天天夜夜久久| 91网站黄www| 福利视频网站一区二区三区| 久久精品国产在热久久| 亚洲国产wwwccc36天堂| 亚洲激情六月丁香| 亚洲乱码国产乱码精品精98午夜| 欧美高清在线精品一区| 久久久亚洲国产美女国产盗摄 | 香蕉乱码成人久久天堂爱免费| 中文字幕不卡在线观看| 久久久久9999亚洲精品| 久久蜜桃香蕉精品一区二区三区| 91麻豆精品国产91久久久资源速度| 欧美亚洲自拍偷拍| 欧美亚洲一区三区| 欧美日韩国产综合久久 | 亚洲一卡二卡三卡四卡无卡久久 | www国产成人| 精品国产一区二区三区忘忧草 | 国产成人av电影免费在线观看| 蜜臀久久99精品久久久久久9 | 污片在线观看一区二区| 亚洲国产毛片aaaaa无费看| 亚洲国产一区二区a毛片| 亚洲成人免费影院| 免费看日韩a级影片| 蜜桃视频免费观看一区| 久久99精品国产麻豆不卡| 久99久精品视频免费观看| 久久国产综合精品| 国产成人午夜视频| 99re热这里只有精品免费视频| 一本色道a无线码一区v| 欧美亚洲综合网| 日韩一区二区在线观看| 精品国产精品网麻豆系列| 国产亚洲欧美一级| 日韩美女视频一区二区| 亚洲小少妇裸体bbw| 日韩av电影一区| 国产成+人+日韩+欧美+亚洲| 99国产精品国产精品毛片| 欧美色涩在线第一页| 日韩三级av在线播放| 欧美韩国日本综合| 亚洲一区二区不卡免费| 久久99国产精品尤物| 成人av动漫网站| 51精品国自产在线| 国产精品久久777777| 日韩综合小视频| 国产91高潮流白浆在线麻豆 | aaa亚洲精品| 欧美日韩精品一区二区| 精品久久久久久久久久久久久久久久久 | 国产精品乡下勾搭老头1| 99riav久久精品riav| 日韩女优制服丝袜电影| 国产精品成人在线观看| 麻豆专区一区二区三区四区五区| 国产**成人网毛片九色 | 欧美日韩一二三| 国产欧美一区二区精品久导航| 一区二区高清免费观看影视大全 | 欧美做爰猛烈大尺度电影无法无天| 欧美一区二区三区色| 亚洲丝袜美腿综合| 国内成人精品2018免费看| 色综合天天在线| 久久视频一区二区| 天天综合网 天天综合色| 国产成人在线影院| 91精品国产色综合久久不卡电影 | 国产综合久久久久久鬼色| 91福利在线观看| 中文字幕+乱码+中文字幕一区| 日本视频在线一区| 欧美色区777第一页| 日韩毛片在线免费观看| 国产精品一区二区在线播放| 欧美日韩mp4| 一区二区不卡在线视频 午夜欧美不卡在 | 久久精品在线免费观看| 免费不卡在线视频| 欧美日韩精品三区| 亚洲精品国产精品乱码不99| 国产精品一区二区三区乱码 | 一区二区三区国产精华| 成人手机在线视频| 国产片一区二区三区| 精品一二三四区| 日韩欧美aaaaaa| 男女性色大片免费观看一区二区| 欧美亚日韩国产aⅴ精品中极品| 国产精品乱人伦一区二区| 国产老肥熟一区二区三区| 精品免费日韩av| 蜜桃视频在线一区| 欧美一区二区黄| 美国毛片一区二区| 久久先锋资源网| 国产乱子轮精品视频| 久久综合色天天久久综合图片| 另类调教123区|