亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩女优制服丝袜电影| 国产亚洲欧美日韩日本| 精品国产污污免费网站入口| 国产精品久久午夜夜伦鲁鲁| 国内精品免费**视频| 成人永久看片免费视频天堂| 欧美一卡2卡三卡4卡5免费| 亚洲欧美影音先锋| 国产在线国偷精品产拍免费yy| 欧美性受xxxx| 亚洲欧美日韩国产手机在线| 国产一区二区三区美女| 日韩一区二区不卡| 亚洲成a人片在线观看中文| av在线播放不卡| 国产三级三级三级精品8ⅰ区| 日韩在线播放一区二区| 欧美私模裸体表演在线观看| 中文字幕一区免费在线观看| 国产suv一区二区三区88区| 欧美电影免费观看完整版| 香蕉av福利精品导航| 91国偷自产一区二区开放时间| 国产三级欧美三级日产三级99| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩国产首页在线观看| 亚洲一区二区五区| 在线看不卡av| 亚洲大片在线观看| 欧美日韩精品欧美日韩精品| 亚洲午夜三级在线| 在线精品视频一区二区三四| 亚洲一区二区精品3399| 在线视频综合导航| 亚洲成人一区在线| 欧美日韩国产精选| 日本免费在线视频不卡一不卡二| 在线成人av网站| 免费精品99久久国产综合精品| 91精品在线麻豆| 美女在线观看视频一区二区| 欧美成人激情免费网| 国产一区二区看久久| 国产喂奶挤奶一区二区三区| 成人精品国产一区二区4080| 亚洲私人黄色宅男| 欧美日韩一区视频| 麻豆成人91精品二区三区| 久久久影视传媒| av电影一区二区| 亚洲成人一区在线| 精品美女一区二区| eeuss鲁一区二区三区| 夜夜嗨av一区二区三区中文字幕| 欧美日韩另类国产亚洲欧美一级| 蜜桃免费网站一区二区三区| 久久精品亚洲乱码伦伦中文| 99国产精品久久久久| 亚洲v日本v欧美v久久精品| 精品精品欲导航| av一区二区三区四区| 三级在线观看一区二区| 精品国产伦一区二区三区免费 | 国产高清不卡二三区| 欧美国产综合色视频| 欧美在线不卡一区| 久久99国内精品| 亚洲青青青在线视频| 欧美一二区视频| 91尤物视频在线观看| 激情综合色丁香一区二区| 欧美激情综合在线| 3atv一区二区三区| 成人av电影免费在线播放| 日韩在线a电影| 日韩美女久久久| 久久综合五月天婷婷伊人| 91色porny蝌蚪| 国产一区福利在线| 亚洲国产精品视频| 国产精品国产三级国产专播品爱网| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品一区三区| 亚洲一区二区三区四区五区中文| 精品国产在天天线2019| 欧美日韩一区二区三区不卡| 成人黄色国产精品网站大全在线免费观看 | 欧美综合天天夜夜久久| 国产风韵犹存在线视精品| 亚洲成人在线网站| 亚洲欧洲制服丝袜| 久久一区二区视频| 欧美一级二级三级蜜桃| 色老头久久综合| 成人一区二区三区在线观看| 日韩av电影免费观看高清完整版 | 中文字幕日韩一区| 久久一区二区三区四区| 在线播放国产精品二区一二区四区 | 成人免费观看视频| 激情综合色综合久久综合| 日韩专区一卡二卡| 亚洲成人动漫精品| 亚洲一区二区三区四区的| 亚洲品质自拍视频| 1024成人网色www| 国产精品成人一区二区三区夜夜夜| 久久久蜜桃精品| 色综合中文字幕| 国产网红主播福利一区二区| 欧美久久久久久久久久 | 国产综合色在线| 男男视频亚洲欧美| 亚洲va天堂va国产va久| 欧美aⅴ一区二区三区视频| 亚洲激情av在线| 一区二区三区久久| 亚洲午夜精品网| 伊人一区二区三区| 亚洲综合一区二区精品导航| 夜夜爽夜夜爽精品视频| 亚洲国产精品麻豆| 天天做天天摸天天爽国产一区| 午夜av一区二区三区| 日韩精品一二三| 青青草国产成人av片免费| 卡一卡二国产精品| 国产麻豆成人传媒免费观看| 激情小说亚洲一区| 成人精品视频一区| 色伊人久久综合中文字幕| 欧美性猛交一区二区三区精品| 欧美高清dvd| 精品福利在线导航| 国产精品美女久久久久高潮| 亚洲三级免费观看| 亚洲成人tv网| 国产一区二区0| 一本一本久久a久久精品综合麻豆| 在线亚洲精品福利网址导航| 日韩欧美中文字幕制服| 国产欧美日韩激情| 亚洲第一激情av| 国产一区二区h| 欧美天堂一区二区三区| 欧美成人精品1314www| 日韩一区日韩二区| 日本特黄久久久高潮| 福利视频网站一区二区三区| 在线亚洲精品福利网址导航| 久久综合网色—综合色88| 亚洲免费观看在线观看| 久久国产精品露脸对白| 99国产精品99久久久久久| 91精品视频网| 成人免费在线视频| 欧美aⅴ一区二区三区视频| www.欧美.com| 精品播放一区二区| 亚洲综合无码一区二区| 国产成人在线观看免费网站| 欧美性生活久久| 欧美韩日一区二区三区四区| 午夜精品免费在线| 欧美性受极品xxxx喷水| 精品国产第一区二区三区观看体验| 亚洲精品国产无套在线观| 国产精品亚洲人在线观看| 欧美高清视频不卡网| 夜夜嗨av一区二区三区四季av| 国产成人综合自拍| 日韩精品影音先锋| 亚洲成人先锋电影| 色综合中文字幕| 欧美国产禁国产网站cc| 久久成人精品无人区| 欧美男人的天堂一二区| 一区视频在线播放| 国产精品自拍在线| 青青草原综合久久大伊人精品优势| 欧美浪妇xxxx高跟鞋交| 一区二区日韩av| 日韩电影在线免费观看| 色婷婷久久一区二区三区麻豆| 久久综合久久综合久久综合| 午夜视频一区在线观看| 99re视频这里只有精品| 国产精品无圣光一区二区| 国模套图日韩精品一区二区| 日韩一区二区三区av| 亚洲国产一区二区三区青草影视| 91视频91自| 亚洲三级小视频| 91丨国产丨九色丨pron| 中文字幕在线一区二区三区| 夫妻av一区二区| 中文字幕国产精品一区二区| 成人午夜在线播放| 国产精品国产精品国产专区不蜜| 国产成人免费视频|