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

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

?? rangedemo.c

?? This software is a simple range demo for the nRF9E5 and nRF24E1 devices.
?? C
字號:
/*= rangedemo.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:
 *
 *  nRF9E5/nRF24E1 range demo. Select receiver by shorting P03 and P05 and transmitter by shorting
 *  P05 and P06. Uncomment/comment the appropriate #define below to select nRF9E5 or nRF24E1.
 *
 *  The transmitter continously send one byte packets. Each time the receiver receives a packet the
 *  P00 pin is set low (LED1 is turned on on the 9E5 eval board). At the same time a 20ms timer is
 *  started and if a new packets is not received before the 20ms time-out the P00 pin is set high
 *  (LED1 is turned off). If a new packet is received before the time-out a new 20ms time-out period
 *  is started.
 *
 *  Please remember to turn off the RS232 switch on the receiver and transmitter boards. On the
 *  nRF9E5 board turn off all dip-switches on the transmitter and turn on only the LED1 switch on
 *  the receiver.
 *
 * COMPILER:
 *  
 *  This program has been tested with Keil C51 V7.09
 *
 * $Revision: 1 $
 *
 *==================================================================================================
*/
// Comment out the following line for nRF24E1
#define NRF9E5 1


#ifdef NRF9E5
#include <Nordic\reg9e5.h>
#define POWER      3                // 0=min power...3 = max power
#define HFREQ      1                // 0=433MHz, 1=868/915MHz
#define CHANNEL  351                // Channel number: f(MHz) = (422.4+CHANNEL/10)*(1+HFREQ) 
#else
#include <nordic\reg24e1.h>
#endif

#define TIMEOUT    20               // 20ms time-out on LED
#define ON          1
#define OFF         0

static volatile unsigned char timer;
static volatile unsigned char t0lrel, t0hrel;

#ifndef NRF9E5

struct RFConfig
{
    unsigned char n;
    unsigned char buf[15];
};

typedef struct RFConfig RFConfig;

#define ADDR_INDEX  8               // Index to address bytes in RFConfig.buf
#define ADDR_COUNT  4               // Number of address bytes

const RFConfig tconf =
{
    15,
    0x08,                           // Payload size transmitter Rx #2 (not used in this example)
    0x08,                           // Payload size transmitter Rx #1 (not used in this example)
    0x00, 0x00, 0x00, 0x00, 0x00,   // Address of transmitter Rx #2 (not used in this example)
    0x00, 0x12, 0x34, 0x56, 0x78,   // Address of transmitter Rx #1 (not used in this example)
    0x81, 0x6f, 0x04
};

const RFConfig rconf =
{
    15,
    0x08,                           // Payload size receiver Rx #2 (not used in this example)
    0x08,                           // Payload size receiver Rx #1
    0x00, 0x00, 0x00, 0x00, 0x00,   // Address receiver Rx #2 (not used in this example)
    0x00, 0x12, 0x34, 0x56, 0x78,   // Address receiver Rx #1 (four lower bytes used here)
    0x81, 0x6f, 0x05
};

#endif

void Delay100us(volatile unsigned char n)
{
    unsigned char i;
    while(n--)
        for(i=0;i<35;i++)
            ;
}

unsigned char SpiReadWrite(unsigned char b)
{
    EXIF &= ~0x20;                  // Clear SPI interrupt
    SPI_DATA = b;                   // Move byte to send to SPI data register
    while((EXIF & 0x20) == 0x00)    // Wait until SPI hs finished transmitting
        ;
    return SPI_DATA;
}

unsigned char ReceivePacket()
{
    unsigned char b;

#ifdef NRF9E5
    TRX_CE = 1;
    while(DR == 0)
        ;
    RACSN = 0;
    SpiReadWrite(RRP);
    b = SpiReadWrite(0);
    RACSN = 1;
    TRX_CE = 0;
#else
    CE = 1;
    while(DR1 == 0)
        ;
    b = SpiReadWrite(0);
    CE = 0;
#endif
    return b;
}

void TransmitPacket(unsigned char b)
{
#ifdef NRF9E5
    RACSN = 0;
    SpiReadWrite(WTP);
    SpiReadWrite(b);
    RACSN = 1;
    TRX_CE = 1;
    Delay100us(1);
    TRX_CE = 0;
    while(DR == 0)
        ;
#else
    unsigned char i;

    CE = 1;
    Delay100us(0);
    // All packets start with the receiver address:
    for(i=0;i<ADDR_COUNT;i++)
        SpiReadWrite(rconf.buf[ADDR_INDEX+i]);
    SpiReadWrite(b);
    CE = 0;
    Delay100us(3);                  // Wait ~300us
#endif
}

void Led(unsigned char on)
{
    if (on)
    {
        P0 &= ~0x01;
        timer = 0;  
        TR0 = 1;                    // Start Timer0
    } else
        P0 |= 0x01;
}

void InitTimer(void)
{
    TR0 = 0;
    TMOD &= ~0x03;
    TMOD |= 0x01;                   // mode 1
    CKCON |= 0x08;                  // T0M = 1 (/4 timer clock)
    t0lrel = 0x60;                  // 1KHz tick...
    t0hrel = 0xF0;                  // ... = 65536-16e6/(4*1e3) = F060h
    TF0 = 0;                        // Clear any pending Timer0 interrupts
    ET0 = 1;                        // Enable Timer0 interrupt
}

void Timer0ISR (void) interrupt 1
{
    TF0 = 0;                        // Clear Timer0 interrupt
    TH0 = t0hrel;                   // Reload Timer0 high byte
    TL0 = t0lrel;                   // Reload Timer0 low byte
    timer++;
    if (timer == TIMEOUT)
    {
        P0 |= 0x01;                 // Led off
        TR0 = 0;                    // Stop timer
    }
}

void Receiver(void)
{
    unsigned char b, bo, err;

#ifdef NRF9E5
    TXEN = 0;
#else
    CS = 1;
    Delay100us(0);
    for(b=0;b<rconf.n;b++)
    {
        SpiReadWrite(rconf.buf[b]);
    }
    CS = 0;
#endif
    bo = err = 0;
    for(;;)
    {
        b = ReceivePacket();
        Led(ON);
    }
}

void Transmitter(void)
{
    unsigned char b;
    
#ifdef NRF9E5
    TXEN = 1;
#else
    CS = 1;
    Delay100us(0);
    for(b=0;b<tconf.n;b++)
    {
        SpiReadWrite(tconf.buf[b]);
    }
    CS = 0;
#endif
    b = 0;
    for(;;)
    {
        TransmitPacket(b++);        // Transmit data
    }
}

void Init(void)
{
    unsigned char tmp;

    P0_DIR = 0x20;                  // P0.5 is input, the rest output
    P0 = 0x89;                      // P0.3 = 1 and P0.6=0 for the rec/tran selection
                                    // LED off
    SPICLK = 1;
    SPI_CTRL = 0x02;                // Connect internal SPI controller to Radio

#ifdef NRF9E5
    // Switch to 16MHz clock:
    RACSN = 0;
    SpiReadWrite(RRC | 0x09);
    tmp = SpiReadWrite(0) | 0x04;
    RACSN = 1;

    RACSN = 0;
    SpiReadWrite(WRC | 0x09);
    SpiReadWrite(tmp);
    RACSN = 1;

    // Configure Radio:
    RACSN = 0;
    SpiReadWrite(WRC | 0x03);       // Write to RF config address 3 (RX payload)
    SpiReadWrite(0x01);             // One byte RX payload
    SpiReadWrite(0x01);             // One byte TX payload
    RACSN = 1;

    RACSN = 0;
    SpiReadWrite(RRC | 0x01);       // Read RF config address 1
    tmp = SpiReadWrite(0) & 0xf0;   // Clear the power and frequency setting bits
    RACSN = 1;

    RACSN = 0;
    SpiReadWrite(WRC);              // Write RF config address 0
    SpiReadWrite(CHANNEL & 0xff);   // CHANNEL bit7..0
    // Change power defined by POWER above, to 433 or 868/915MHz defined by HFREQ and
    // bit8 of CHANNEL:
    SpiReadWrite(tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01));
    RACSN = 1;
#else
    PWR_UP = 1;                     // Turn on Radio on 24E1
    Delay100us(30);                 // Wait > 3ms
#endif

    InitTimer();
    EA = 1;
}

void main(void)
{
    Init();
    if(P0 & 0x20)
    {
        Receiver();
    }
    else
    {
        Transmitter();
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久一二三区| 91精品国产综合久久蜜臀| 日本不卡一区二区三区高清视频| 国产精品免费视频网站| 久久久久久久综合| 国产三级精品三级| 国产精品天干天干在观线| 国产欧美一区在线| 中文字幕一区二区不卡| 中文字幕一区二区5566日韩| 亚洲欧美偷拍卡通变态| 亚洲午夜三级在线| 亚洲国产日韩在线一区模特| 婷婷久久综合九色综合绿巨人| 亚洲高清免费在线| 麻豆精品久久久| 国产精品一品二品| 91麻豆.com| 91麻豆精品国产自产在线| 欧美变态tickling挠脚心| 久久夜色精品国产欧美乱极品| 亚洲国产精品成人久久综合一区| 最新成人av在线| 国模一区二区三区白浆| av电影在线观看完整版一区二区| 色婷婷亚洲精品| 日韩精品资源二区在线| 亚洲国产精品激情在线观看| 亚洲乱码日产精品bd| 热久久久久久久| 成人免费观看av| 欧美日韩电影在线| 国产午夜精品久久| 亚洲黄色在线视频| 精品一区二区三区在线播放| av色综合久久天堂av综合| 欧美日韩你懂得| 国产蜜臀97一区二区三区| 樱桃国产成人精品视频| 激情成人午夜视频| 在线观看日韩电影| 国产日韩欧美一区二区三区乱码| 一区二区三区久久| 国产精品88av| 欧美疯狂性受xxxxx喷水图片| 久久综合九色综合97_久久久| 亚洲色大成网站www久久九九| 久久精品72免费观看| 欧洲国内综合视频| 国产精品三级电影| 激情欧美一区二区| 国产日韩精品一区二区浪潮av| 亚洲免费三区一区二区| 国产尤物一区二区| 日韩一区二区三区精品视频 | 久久精品国产99久久6| 91浏览器在线视频| 日本一区二区三区免费乱视频| 首页综合国产亚洲丝袜| 色综合久久综合| 亚洲国产成人一区二区三区| 精品中文字幕一区二区| 欧美蜜桃一区二区三区| 一区二区欧美视频| www.欧美日韩国产在线| 国产午夜精品理论片a级大结局| 日韩不卡一二三区| 欧美日韩一区国产| 亚洲高清免费一级二级三级| 92精品国产成人观看免费| 久久精品一区二区三区四区| 日本欧美一区二区| 欧美一区二区三区在线| 亚洲成人免费在线观看| 欧美日韩一区二区三区免费看 | 精品视频一区三区九区| 国产在线视视频有精品| 精品久久久久久亚洲综合网| 免费在线一区观看| 日韩一区二区三区四区五区六区 | 欧美一卡二卡三卡四卡| 亚洲第一电影网| 91精品国产一区二区三区| 婷婷一区二区三区| 日韩女优制服丝袜电影| 极品销魂美女一区二区三区| 久久久久久免费| 国产成人在线视频网址| 国产精品免费观看视频| 91亚洲大成网污www| 亚洲精品中文字幕乱码三区| 色诱视频网站一区| 午夜视频在线观看一区二区 | 国产成人在线观看免费网站| 国产丝袜在线精品| 一本到一区二区三区| 天堂在线一区二区| 久久久久久日产精品| 成人精品免费视频| 亚洲一区二区高清| 日韩久久精品一区| 不卡av在线网| 午夜精品久久久久影视| 精品国产123| 91在线精品秘密一区二区| 亚洲一区二区精品久久av| 日韩美女主播在线视频一区二区三区| 国内精品久久久久影院色| 亚洲视频精选在线| 日韩欧美在线123| eeuss鲁一区二区三区| 日韩精品乱码免费| 国产精品网站在线播放| 欧美人牲a欧美精品| 国产传媒一区在线| 视频一区中文字幕国产| 国产精品污污网站在线观看| 欧美日韩久久久久久| 懂色av噜噜一区二区三区av| 亚洲高清免费视频| 国产精品美女久久久久久久久| 91精品国产欧美日韩| 99久久精品国产精品久久| 久久精品国产99久久6| 一区二区三区日韩精品视频| 久久久综合网站| 91精品免费在线观看| 色8久久精品久久久久久蜜| 国产高清亚洲一区| 奇米色一区二区| 亚洲曰韩产成在线| 韩国欧美国产1区| 一区二区三区精品视频| 日本一区二区在线不卡| 日韩欧美在线不卡| 欧美性猛片aaaaaaa做受| 成人深夜在线观看| 精品一区二区三区在线观看国产| 亚洲人成在线观看一区二区| 日本一区二区免费在线| 亚洲精品一区二区在线观看| 欧美高清一级片在线| 欧美网站一区二区| 91亚洲精品久久久蜜桃网站| 国产在线观看一区二区| 激情都市一区二区| 精品一区二区三区免费毛片爱 | 3atv在线一区二区三区| 色久综合一二码| 色综合久久综合网97色综合| av中文字幕在线不卡| 成人久久18免费网站麻豆| 国产91对白在线观看九色| 国产白丝网站精品污在线入口| 国内不卡的二区三区中文字幕| 精品一区二区久久久| 久88久久88久久久| 国产一区二区三区免费观看| 精品中文av资源站在线观看| 麻豆成人综合网| 久久国产日韩欧美精品| 黑人巨大精品欧美一区| 国产不卡视频在线观看| 成人免费视频播放| 色婷婷综合久久久中文一区二区| 色94色欧美sute亚洲线路一久| 在线观看91视频| 91精品国产品国语在线不卡| www亚洲一区| 日韩国产欧美在线播放| 蜜桃av一区二区三区| 国产真实乱偷精品视频免| 大桥未久av一区二区三区中文| 北条麻妃一区二区三区| 在线亚洲免费视频| 91精品国产综合久久精品app| 26uuu亚洲婷婷狠狠天堂| 国产精品女同互慰在线看| 一区二区视频在线| 青青草91视频| 高清不卡一区二区在线| 欧美性淫爽ww久久久久无| 欧美v国产在线一区二区三区| 国产日韩欧美在线一区| 亚洲一区在线观看免费观看电影高清| 天堂在线一区二区| 国产成人鲁色资源国产91色综| 色视频一区二区| 精品国产乱码久久久久久牛牛| 1024成人网| 久久精品免费观看| 99久久99久久精品免费观看| 欧美日韩国产一二三| 日本一区二区三区久久久久久久久不| 亚洲精品日韩专区silk| 激情六月婷婷久久| 欧美日韩精品专区| 中文字幕第一区二区| 麻豆精品久久精品色综合| 色婷婷综合视频在线观看|