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

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

?? radio.c

?? RFID讀寫卡程序
?? C
字號:
/*= radio.c ========================================================================================
 *
 * Copyright (C) 2004 Nordic Semiconductor
 *
 * This file is distributed in the hope that it will be useful, but WITHOUT WARRANTY OF ANY KIND.
 *
 * Author(s): Ole Saether
 *
 * DESCRIPTION:
 *
 *  Packet format:
 *
 *  [4 byte address][1 byte msg ID][0-25 bytes msg data][16 bit CRC]
 *
 *
 * COMPILER:
 *
 *   This program has been tested with Keil C51 V7.08
 *   01/06/2005 change to send 2time on one time
 *
 * $Revision: 6 $
 *
 *==================================================================================================
*/
#include <Nordic\reg9e5.h>
#include "util.h"
#include "radio.h"

#define HFREQ 1     // 0=433MHz, 1=868/915MHz    19/08/2004 set 915mhz
#define POWER 3     // 0=min power...3 = max power
unsigned char TransmitPacket1(unsigned char *pBuf,unsigned char *pBuf1);
unsigned char ReceivePacket1(unsigned char *pBuf,unsigned char *pBuf1);
const unsigned char code rnd_tab[256] =
{
    // This table contains four each of the numbers 2 to 65 (0x02-0x41) randomly distributed.
    // If you need longer random cycles than this you could use an 8-bit pseudo random generator
    // and use it to index this table.
    0x28, 0x29, 0x38, 0x07, 0x19, 0x17, 0x2F, 0x1F, 0x14, 0x16, 0x1F, 0x06, 0x38, 0x1B, 0x3B, 0x33,
    0x33, 0x2F, 0x37, 0x1A, 0x32, 0x15, 0x19, 0x34, 0x1B, 0x2D, 0x13, 0x02, 0x3F, 0x18, 0x10, 0x10,
    0x0A, 0x1D, 0x0D, 0x37, 0x3D, 0x0B, 0x2A, 0x25, 0x1F, 0x20, 0x41, 0x21, 0x2F, 0x2A, 0x36, 0x09,
    0x1C, 0x2C, 0x0F, 0x1E, 0x39, 0x03, 0x06, 0x03, 0x2B, 0x0A, 0x1D, 0x02, 0x24, 0x3A, 0x32, 0x10,
    0x16, 0x16, 0x13, 0x12, 0x20, 0x06, 0x13, 0x1F, 0x0D, 0x41, 0x1E, 0x08, 0x3D, 0x31, 0x09, 0x16,
    0x23, 0x12, 0x2D, 0x12, 0x31, 0x1C, 0x36, 0x0B, 0x11, 0x21, 0x37, 0x13, 0x38, 0x41, 0x0B, 0x32,
    0x1B, 0x33, 0x20, 0x29, 0x0E, 0x05, 0x41, 0x1E, 0x05, 0x0C, 0x38, 0x1D, 0x20, 0x2F, 0x29, 0x39,
    0x3D, 0x04, 0x26, 0x10, 0x12, 0x36, 0x3B, 0x08, 0x3D, 0x3C, 0x1A, 0x24, 0x08, 0x07, 0x35, 0x15,
    0x2A, 0x40, 0x2C, 0x11, 0x31, 0x28, 0x2A, 0x1E, 0x02, 0x07, 0x19, 0x32, 0x28, 0x39, 0x1A, 0x28,
    0x19, 0x22, 0x03, 0x21, 0x39, 0x09, 0x03, 0x0F, 0x3E, 0x2D, 0x0D, 0x37, 0x18, 0x3E, 0x09, 0x25,
    0x26, 0x11, 0x36, 0x1A, 0x18, 0x25, 0x3E, 0x29, 0x08, 0x3C, 0x2B, 0x33, 0x02, 0x0A, 0x05, 0x0A,
    0x1C, 0x2C, 0x07, 0x23, 0x3E, 0x1B, 0x3F, 0x2E, 0x3B, 0x31, 0x2B, 0x24, 0x35, 0x26, 0x1D, 0x2E,
    0x11, 0x3C, 0x15, 0x2B, 0x15, 0x24, 0x2C, 0x27, 0x0D, 0x34, 0x14, 0x23, 0x21, 0x04, 0x3A, 0x27,
    0x0F, 0x40, 0x27, 0x0B, 0x30, 0x2E, 0x17, 0x25, 0x3C, 0x34, 0x40, 0x34, 0x0C, 0x2D, 0x30, 0x18,
    0x40, 0x0F, 0x22, 0x26, 0x27, 0x3F, 0x30, 0x22, 0x30, 0x3F, 0x23, 0x14, 0x3A, 0x14, 0x3B, 0x0C,
    0x06, 0x04, 0x05, 0x3A, 0x35, 0x0E, 0x0E, 0x0C, 0x17, 0x1C, 0x35, 0x0E, 0x04, 0x2E, 0x17, 0x22
};

static unsigned char seq, hopIdx, nBytes,PXX;
static unsigned rxTout, txTout;

static void SwitchChannel(void)
{
    RACSN = 0;
    SpiReadWrite(CC | (POWER << 2) | (HFREQ << 1));
    SpiReadWrite(rnd_tab[hopIdx]);
    RACSN = 1;
}

static void TransmitBytes(unsigned char *pBuf, unsigned char msgid)
{
    // Transmit one packet with the format specified in the header of this file:
    unsigned char i;
    PXX=pBuf[19];
    SwitchChannel();
    TXEN = 1;
    RACSN = 0;
    SpiReadWrite(WTP);
    SpiReadWrite(msgid);
    for (i=0;i<nBytes;i++)
    {
        SpiReadWrite(pBuf[i]);
    }
    RACSN = 1;
    TRX_CE = 1;
    Delay100us(1);
    TRX_CE = 0;
    while(DR == 0)
        ;
}

static void SendAck(unsigned char msgid)
{
    // Send a one byte acknowledge
    SwitchChannel();
    TXEN = 1;
    RACSN = 0;
    SpiReadWrite(WTP);
    SpiReadWrite(msgid);
    RACSN = 1;
    TRX_CE = 1;
    Delay100us(1);
    TRX_CE = 0;
    while(DR == 0)
        ;
}

static unsigned char ReceiveBytes(unsigned char *pBuf)
{
    unsigned char i, cmd;

    SwitchChannel();
    TXEN = 0;
    TRX_CE = 1;
    ResetTimer(1);
    while(DR == 0)
    {
        if ((rxTout != 0) && (GetTimer(1) > rxTout))
        {
            TRX_CE = 0;
            return 0;
        }
    }
    TRX_CE = 0;
    RACSN = 0;
    SpiReadWrite(RRP);
    cmd = SpiReadWrite(0);
    i = 0;
    while(DR)
    {
        pBuf[i++] = SpiReadWrite(0);
        if (i == nBytes)                        // Play safe
            break;
    }
    RACSN = 1;
    return cmd;
}

static unsigned char WaitAck(void)
{
    unsigned char ack;

    SwitchChannel();
    TXEN = 0;
    TRX_CE = 1;

    ResetTimer(0);
    while(DR == 0)
    {
        if (GetTimer(0) > 5)                    // 5ms time-out
        {
            TRX_CE = 0;
            return 0;
        }
    }
    TRX_CE = 0;
    RACSN = 0;
    SpiReadWrite(RRP);
    ack = SpiReadWrite(0);
    RACSN = 1;    
    return ack;
}

unsigned char TransmitPacket(unsigned char *pBuf)
{
    unsigned int i;
    unsigned char cmdt, cmdr, j;

    seq++;
    cmdt = 0x10 | (seq & 0x0f);
    cmdr = 0;
    ResetTimer(1);
    for(;;)
    {
        for (i=0;i<2;i++)                  //01/06/2005 256 to 2
        {
            // Repeat two times on all channels if no ACK is received
            for (j=0;j<2;j++)
            {
                TransmitBytes(pBuf, cmdt);
                cmdr = WaitAck();
                //if ((cmdr != 0) && ((cmdr & 0x0f) == (cmdt & 0x0f)))
                 if (cmdr != 0) 
                {
                 //   hopIdx++;        not hop 
                    return 1;
                }
            }
           // hopIdx++;  not hop 
            if ((txTout != 0) && (GetTimer(1) > txTout))
                return 0;
        }
    }
    return 0;
}

unsigned char ReceivePacket(unsigned char *pBuf)
{
    unsigned char cmd;
    while(1)
    {
        cmd = ReceiveBytes(pBuf);
        if (cmd == 0)
            return 0;
        cmd = (cmd & 0x0f) | 0x20;
        SendAck(cmd);
		  Delay100us(1);
          SendAck(cmd);
          Delay100us(10);
          SendAck(0X20);
       // hopIdx++;     not hop 
        if ((cmd & 0x0f) != seq)
        {
            seq = cmd & 0x0f;
            break;
        }
    }
    return 1;
}

//void ReceiverTimeout(unsigned tOut)
//{
    // Set the receiver timeout in ms.
    // 1ms = min timeout, 65536ms is max, 0 means wait forever
//    rxTout = tOut;
//}

//void TransmitterTimeout(unsigned tOut)
//{
    // Set the transmitter timeout in ms.
    // 1ms is min timeout, 65536ms is max, 0 means wait forever
//    txTout = tOut;
//}

static void InitAddress(unsigned char spiAddr, unsigned char *pAddr)
{
    unsigned char i;
    RACSN = 0;
    SpiReadWrite(spiAddr);
    for(i=0;i<4;i++)
        SpiReadWrite(pAddr[i]);
    RACSN = 1;
}

static void InitCommon(unsigned char nRx, unsigned char nTx)
{
    hopIdx = 0;                                 // Start at index #0 in the channel table above
    RACSN = 0;
    SpiReadWrite(WRC | 0x03);                   // Write to RF config address 3 (RX payload)
    SpiReadWrite(nRx);
    SpiReadWrite(nTx);
    RACSN = 1;
}

void InitReceiver(unsigned char n, unsigned char *pAddr)
{
    seq = 15;
    rxTout = 3000;                              // Default 3s timeout
    nBytes = n;                                 // Number of data bytes (0-25)
    InitCommon(n+1, 1);
    if (pAddr != 0)
        InitAddress(WRC | 0x05, pAddr);         // Configure RX address
}

void InitTransmitter(unsigned char n, unsigned char *pAddr)
{
    seq = 0;
   // txTout = 3000;                              // Default 3s timeout
    txTout = 300;                              // Default 3s timeout
    nBytes = n;                                 // Number of data bytes (0-25)
    InitCommon(1, n+1);
    if (pAddr != 0)
        InitAddress(WTA, pAddr);                // Configure TX address
}
//---------------------END RADIO----------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一区二区三区| 777午夜精品免费视频| 欧美色精品天天在线观看视频| 日韩视频在线一区二区| 最近日韩中文字幕| 国产一区欧美一区| 欧美三区在线视频| 国产精品国模大尺度视频| 奇米影视一区二区三区小说| 91蜜桃视频在线| 国产日韩欧美精品一区| 麻豆一区二区三| 欧美丰满少妇xxxxx高潮对白| 国产精品美女一区二区三区| 蜜桃传媒麻豆第一区在线观看| 欧美在线免费播放| 亚洲免费观看高清完整版在线| 国产成人免费视频| 欧美精品一区二区三区视频| 免费成人在线观看| 欧美久久高跟鞋激| 午夜精品久久久久久久| 色婷婷久久一区二区三区麻豆| 欧美激情一二三区| 国产传媒久久文化传媒| 久久青草国产手机看片福利盒子 | 久久久久久久久久久黄色| 亚洲电影一级黄| 欧美日韩在线不卡| 亚洲一级不卡视频| 在线播放欧美女士性生活| 亚洲va国产va欧美va观看| 91色婷婷久久久久合中文| 国产精品丝袜一区| 粉嫩aⅴ一区二区三区四区五区 | 国产精品影音先锋| 欧美大片在线观看一区二区| 五月婷婷激情综合网| 欧美麻豆精品久久久久久| 日精品一区二区| 日韩三级电影网址| 青青草国产成人av片免费| 777欧美精品| 精彩视频一区二区| 久久久99精品免费观看| 国产精品一级二级三级| 亚洲欧美在线视频观看| 色综合久久中文字幕| 樱桃国产成人精品视频| 欧美人妖巨大在线| 国产麻豆视频精品| 亚洲欧洲av另类| 欧美久久久久久久久久| 久久成人免费网站| 337p日本欧洲亚洲大胆色噜噜| 日本不卡的三区四区五区| 69堂成人精品免费视频| 蜜臀av性久久久久蜜臀aⅴ| 久久精品欧美日韩| 欧美亚洲国产一区在线观看网站| 日本三级亚洲精品| 久久久久九九视频| 欧美午夜电影网| 国产一区二三区好的| 日韩一区在线免费观看| 欧美电影一区二区| 高清beeg欧美| 日本欧美一区二区三区| 欧美激情一二三区| 欧美一区二区三区男人的天堂| 国产成人亚洲综合a∨猫咪| 亚洲精品乱码久久久久久久久 | 欧美日韩久久不卡| 狠狠色丁香久久婷婷综合丁香| 日韩美女视频一区| 欧美成人一区二区三区在线观看| 成人av免费在线播放| 日韩电影免费一区| 亚洲免费av在线| 久久一区二区视频| 欧美精品三级日韩久久| 99久久久无码国产精品| 美日韩黄色大片| 亚洲午夜精品在线| 国产精品美女一区二区在线观看| 日韩精品一区二区三区中文精品| 色又黄又爽网站www久久| 国产综合色精品一区二区三区| 亚洲精品videosex极品| 精品国产91亚洲一区二区三区婷婷| 色婷婷综合激情| 不卡在线观看av| 九九视频精品免费| 日韩中文欧美在线| 亚洲另类春色国产| 亚洲色图.com| 久久影院视频免费| 欧美国产欧美综合| 色综合久久综合网欧美综合网| 日本欧美在线看| 亚洲啪啪综合av一区二区三区| 91在线国产观看| 亚洲午夜久久久久久久久电影院 | 精品一区二区成人精品| 日韩有码一区二区三区| 亚洲风情在线资源站| 亚洲精品欧美二区三区中文字幕| 久久无码av三级| 久久久久久97三级| 国产日韩欧美不卡在线| 精品对白一区国产伦| 欧美sm美女调教| 精品奇米国产一区二区三区| 欧美老年两性高潮| 91精品国产综合久久久蜜臀粉嫩 | 一区二区国产盗摄色噜噜| 中文字幕一区二区视频| 国产精品午夜春色av| 久久精品一区四区| 日本一二三四高清不卡| 国产欧美精品一区二区三区四区| 国产日韩v精品一区二区| 国产日韩欧美在线一区| 欧美国产日韩在线观看| 国产精品国产自产拍高清av| 欧美国产视频在线| 伊人一区二区三区| 亚洲福利视频一区| 免费成人性网站| 粉嫩一区二区三区性色av| 成人午夜免费视频| 色八戒一区二区三区| 欧美日韩高清在线播放| 精品国产乱码久久久久久闺蜜| 久久精品一区八戒影视| 日韩理论片中文av| 亚洲国产日韩一级| 国模无码大尺度一区二区三区| 大胆亚洲人体视频| 欧美综合亚洲图片综合区| 日韩欧美国产午夜精品| 日本一区二区久久| 亚洲国产成人高清精品| 国产自产视频一区二区三区| 福利一区福利二区| 欧美老肥妇做.爰bbww| 精品国产网站在线观看| **网站欧美大片在线观看| 亚洲第一会所有码转帖| 国内精品写真在线观看| 成人激情黄色小说| 欧美一区二区久久| 一区在线观看免费| 日韩成人伦理电影在线观看| 国产精品亚洲专一区二区三区| 国产 欧美在线| 欧美日韩黄色影视| 国产欧美一区二区三区鸳鸯浴 | 日本亚洲天堂网| 成人h版在线观看| 91精品福利在线一区二区三区| 久久精品网站免费观看| 亚洲v日本v欧美v久久精品| 国产精品原创巨作av| 在线视频你懂得一区| 中文字幕精品一区二区三区精品| 自拍偷拍亚洲激情| 国产精品综合一区二区三区| 色综合久久久久综合| 26uuu另类欧美| 日本成人超碰在线观看| 国产精一品亚洲二区在线视频| 欧美日韩一本到| **网站欧美大片在线观看| 国模无码大尺度一区二区三区| 在线观看日韩电影| 中文字幕一区日韩精品欧美| 国内久久精品视频| 欧美一区二区三区四区高清 | 奇米在线7777在线精品| 91高清视频免费看| 最新成人av在线| 成人免费不卡视频| 国产亚洲欧美日韩日本| 经典三级视频一区| 91精品国产91久久久久久一区二区 | 亚洲天堂精品在线观看| 国产精品一级黄| 久久久久久久综合| 丰满少妇在线播放bd日韩电影| 亚洲精品欧美专区| 国产iv一区二区三区| 精品福利一区二区三区 | 成人av手机在线观看| 国产日韩影视精品| 成人av第一页| 国产精品成人一区二区艾草 | va亚洲va日韩不卡在线观看| 国产大陆精品国产| 久久只精品国产|