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

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

?? rx.c

?? 2500-SPI通用程序
?? C
字號:
/*******************************************************************************************************
 *                                                                                                     *
 *        **********                                                                                   *
 *       ************                                                                                  *
 *      ***        ***                                                                                 *
 *      ***   +++   ***                                                                                *
 *      ***   + +   ***     This file contains all functions related to packet reception in the        *
 *      ***   +             Link1 example                                                              *
 *      ***   + +   ***                                                                                *
 *      ***   +++   ***     Rx.c                                                                       *
 *      ***        ***                                                                                 *
 *       ************                                                                                  *
 *        **********                                                                                   *
 *                                                                                                     *
 *******************************************************************************************************
 * Compiler:                Keil C51 V7.50                                                             *
 * Target platform:         Chipcon CCxxx0 (Silabs F320)                                               *
 * Author:                  SNA                                                                        *
 *******************************************************************************************************
 * Revision history:     See end of file                                                               *
 *******************************************************************************************************/
#include <Chipcon\srf04\regssrf04.h>
#include <Chipcon\srf04\halsrf04.h>
#include <Chipcon\srf04\ebsrf04.h>
#include <Link1.h>




//-------------------------------------------------------------------------------------------------------
//  Global Variables
PKT_DATA xdata pktData;
//-------------------------------------------------------------------------------------------------------




//-------------------------------------------------------------------------------------------------------
//  void pktStartRx(UINT16 timeout)
//
//  DESCRIPTION:
//      This function should be called every time the radio shall enter RX mode.
//
//  ARGUMENTS:
//      UINT16 timeout
//          If the radio shall go back to IDLE after a given time, timeout =! 0.
//          RX Timeout [ms] = timeout * 200 us
//          Min RX Timeout: 0.2 ms
//          Max RX Timeout: 13107 ms
//          timeout = 0 => No timeout. Radio will stay in RX until a packet is received,
//-------------------------------------------------------------------------------------------------------
void pktStartRx(UINT16 timeout) {
    if (timeout) {
        pktData.rxTimeout = timeout;
        pktData.rxTimeoutActive = TRUE;
        pktData.rxTimeoutReached = FALSE;
    }
    ENABLE_GLOBAL_INT(INT_OFF);
    halSpiStrobe(CCxxx0_SRX);
    ENABLE_GLOBAL_INT(INT_ON);
}// pktStartRx




//-------------------------------------------------------------------------------------------------------
//  void pktRxHandler(void)
//
//  DESCRIPTION:
//      This function is called every time a timer1 interrupt occurs (every 200 us). The function starts
//      with timeout handling and continues by getting the status byte. A counter, 
//      pktData.rxTimeout, has an initial value timeout (see pktStartRx) and is decremented each
//      time this function is called until it reaches 0 => strobe IDLE (RX mode is terminated).
//      Every time the status byte indicates that there are available bytes in the RX FIFO, bytes are read
//      from the RX FIFO and written to rxBuffer. This is done until the whole packet is received
//      (pktData.pktReceived = TRUE). Due to the FIFO bug, the RX FIFO is not emptied before the last 
//      byte has been received (see Discrepancy Note). If the status byte indicates that there has been an
//      RX FIFO overflow, or the timeout has been reached, the RX FIFO is being flushed. Please see the 
//      CC1100/CC1150DK & CC2500/CC2550DK Development Kit Examples and Libraries User Manual for a flow 
//      chart describing this function.
//-------------------------------------------------------------------------------------------------------
void pktRxHandler(void) {
    BOOL error = FALSE;
    BYTE spiRxStatus;
    UINT16 bytesInFifo;

    // Timeout handling
    if (pktData.rxTimeoutActive) {
        if (pktData.rxTimeout)
            pktData.rxTimeout--;
        else {
            halSpiStrobe(CCxxx0_SIDLE);
            pktData.rxTimeoutActive = FALSE;
            pktData.rxTimeoutReached = TRUE;
        }
    }

    // Which state?
    spiRxStatus = spiGetRxStatus();

    if ((spiRxStatus & CC2500_STATE_BM) == CC2500_STATE_RX_OVERFLOW_BM)
        error = TRUE;
    
    // Handle RX FIFO overflow/RX turnoff timeout
    if (error | pktData.rxTimeoutReached) {
        pktData.rxBytesLeft = 0;
        halSpiStrobe(CCxxx0_SFRX);
    } else {

        // Send the RX FIFO address and get the number of bytes in the FIFO
        CSn = LOW;

        // Wait for SO to go low (voltage regulator has stabilized and the crystal is running
        while (P_SO);

        // Burst access to RX FIFO
        SPI0DAT = CCxxx0_RXFIFO | READ_BURST;
        SPI_WAIT();

        // Read back status byte on SO line
        spiRxStatus = SPI0DAT;

        // If there's anything in the RX FIFO....
        if (bytesInFifo = spiRxStatus & CC2500_FIFO_BYTES_AVAILABLE_BM) {

            // Start by getting the packet length
			if ((pktData.lengthByteRead == FALSE) && (bytesInFifo != 1)) {
                SPI0DAT = 0;
                SPI_WAIT();

                pktData.pRxBuffer[0] = SPI0DAT;
                pktData.rxBytesLeft = pktData.pRxBuffer[0] + 2; // Packet Length + 2 status bytes
                bytesInFifo--;
                pktData.rxPosition = 1;
                pktData.lengthByteRead = TRUE;
            }

            // Make sure that the RX FIFO will not be emptied (See the CC1100 or 2500 Errata Note)
            if ((bytesInFifo) && (bytesInFifo != pktData.rxBytesLeft))
                bytesInFifo--;

            // Update how many bytes are left to be received
            pktData.rxBytesLeft -= bytesInFifo;

            // Read from RX FIFO and store the data in rxBuffer
            while (bytesInFifo--) {
                SPI0DAT = 0;
                SPI_WAIT();
                pktData.pRxBuffer[pktData.rxPosition++] = SPI0DAT;
            }
            CSn = HIGH;

            // Done?
            if ((!pktData.rxBytesLeft) && (pktData.lengthByteRead)) {
                pktData.pktReceived = TRUE;
                pktData.lengthByteRead = FALSE;
            }
        }
        CSn = HIGH;

    }
} // pktRxHandler




//-------------------------------------------------------------------------------------------------------
//  BYTE spiGetRxStatus(void)
//
//  DESCRIPTION:
//      This function transmits a No Operation Strobe (SNOP) with the read bit set to get the status of 
//      the radio. 
//
//      Status byte:
//
//      --------------------------------------------------------------------------------
//      |          |            |                                                      |
//      | CHIP_RDY | STATE[2:0] | FIFO_BYTES_AVAILABLE (available bytes in the RX FIFO |
//      |          |            |                                                      |
//      --------------------------------------------------------------------------------
//
//      STATE[2:0]:
//
//      Value | State
//      --------------------------
//      000   | Idle
//      001   | RX
//      010   | TX
//      011   | FSTXON
//      100   | CALIBRATE
//      101   | SETTLING
//      110   | RXFIFO_OVERFLOW
//      111   | TX_FIFO_UNDERFLOW
//-------------------------------------------------------------------------------------------------------
BYTE spiGetRxStatus(void) {
    CSn = LOW;

    // Wait for SO to go low (voltage regulator has stabilized and the crystal is running
    while (P_SO);

    // Strobe SNOP with the read byte set to get info on current state and number of bits in the RX FIFO 
    SPI0DAT = CCxxx0_SNOP | 0x80;
    SPI_WAIT();
    CSn = HIGH;
    return SPI0DAT;
} // spiGetRxStatus




/******************************************************************************************************
 * Revision history:                                                                                  *
 *
 * $Log: Rx.c,v $
 * Revision 1.6  2006/04/25 14:55:28  a0190596
 * no message
 *
 * Revision 1.5  2006/03/27 15:09:23  a0190596
 * Disable global interrupt before strobing SRX
 *
 * Revision 1.4  2005/10/25 12:07:04  sna
 * Changed test value in if statement to make it easier to read the code
 *
 * Revision 1.3  2005/07/11 12:12:11  sna
 * no message
 *
 * Revision 1.2  2005/06/14 11:08:29  sna
 * no message
 *
 * Revision 1.1  2005/04/20 12:42:07  sna
 * Initial version in CVS
 *
 *
 *
 ******************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区女| 国产呦萝稀缺另类资源| 无码av免费一区二区三区试看| 午夜精品一区在线观看| 麻豆成人免费电影| 国产成人av自拍| 91福利国产精品| 久久久99精品免费观看不卡| 一区二区三区在线观看网站| 美女诱惑一区二区| 91丨porny丨蝌蚪视频| 不卡区在线中文字幕| 3d成人动漫网站| 国产网站一区二区三区| 亚洲国产日韩a在线播放| 国产一区二区三区四区五区入口 | 精品粉嫩aⅴ一区二区三区四区| 欧美激情一区二区| 蜜臀av一区二区| 一本一道波多野结衣一区二区| 欧美tk—视频vk| 亚洲伊人伊色伊影伊综合网| 国产高清精品在线| 日韩一区二区在线播放| 亚洲精品免费播放| 国产精品自产自拍| 欧美一级久久久久久久大片| 一区二区三区波多野结衣在线观看| 国产乱码精品1区2区3区| 欧美一区二区精品久久911| 亚洲一区二区精品久久av| 在线观看www91| 亚洲综合成人在线| 91麻豆文化传媒在线观看| 亚洲男人的天堂av| 成人国产精品免费网站| 日韩视频免费观看高清完整版| 亚洲综合免费观看高清完整版| av不卡免费电影| 日韩理论片在线| 91一区二区在线观看| 国产精品乱码一区二区三区软件| 不卡影院免费观看| 中文字幕在线一区免费| 成人黄色软件下载| 国产夜色精品一区二区av| 狠狠狠色丁香婷婷综合久久五月| 欧美一区二区三区爱爱| 亚洲夂夂婷婷色拍ww47 | 国产美女在线精品| 26uuu精品一区二区| 免费国产亚洲视频| 51精品秘密在线观看| 一区二区高清免费观看影视大全| 不卡av电影在线播放| 日本一区二区三区四区| 成人永久aaa| 日韩理论片在线| 在线看国产一区| 亚洲一二三四在线| 91精品国产91热久久久做人人| 日韩成人dvd| www欧美成人18+| 国产成人av资源| 自拍偷拍亚洲激情| 色综合久久中文字幕综合网 | 欧美性欧美巨大黑白大战| 一区二区理论电影在线观看| 91福利在线看| 蜜桃精品在线观看| 国产亚洲欧美中文| 91麻豆文化传媒在线观看| 亚洲综合色丁香婷婷六月图片| 91精品欧美久久久久久动漫| 另类的小说在线视频另类成人小视频在线| 7777精品伊人久久久大香线蕉超级流畅 | 国产欧美日本一区视频| 国产成人av福利| 亚洲愉拍自拍另类高清精品| 欧美高清视频不卡网| 精品一区二区三区免费| 综合久久一区二区三区| 欧美日韩精品是欧美日韩精品| 亚洲一区在线视频| 久久亚洲一区二区三区明星换脸 | 国产乱妇无码大片在线观看| 国产精品久久久久久亚洲毛片 | 成人黄页在线观看| 亚洲午夜一区二区| 亚洲精品在线电影| 成人激情文学综合网| 亚洲成人福利片| 久久影视一区二区| 欧美日韩的一区二区| 成人毛片老司机大片| 一区二区三区久久| 久久久国产精品麻豆| 欧美精品一级二级三级| 99九九99九九九视频精品| 美腿丝袜在线亚洲一区| 亚洲欧美日韩在线播放| 精品国产乱码久久| 色老综合老女人久久久| 国产一区二区三区电影在线观看| 亚洲综合视频网| 欧美激情综合在线| 欧美一级理论性理论a| 欧美性xxxxx极品少妇| 国产白丝网站精品污在线入口| 亚洲日本一区二区三区| 日韩美一区二区三区| 欧美综合亚洲图片综合区| 成人在线一区二区三区| 激情综合网天天干| 图片区小说区区亚洲影院| 亚洲精品免费在线观看| 欧美国产一区二区| 777奇米成人网| 在线视频你懂得一区二区三区| 北岛玲一区二区三区四区| 久久99精品久久久久久久久久久久| 亚洲成a人片综合在线| 亚洲精品国产第一综合99久久 | 日韩av一区二区三区四区| 亚洲欧美经典视频| 久久精品这里都是精品| 欧美日韩激情一区二区三区| 日本精品视频一区二区三区| 国产98色在线|日韩| 国产一区二区调教| 国产精品一区二区在线播放 | 亚洲第一在线综合网站| 亚洲欧洲综合另类| 亚洲欧美乱综合| 夜夜亚洲天天久久| 亚洲国产一区二区视频| 香蕉乱码成人久久天堂爱免费| 亚洲自拍偷拍图区| 舔着乳尖日韩一区| 午夜精品一区二区三区免费视频 | 成人欧美一区二区三区| 一区二区理论电影在线观看| 秋霞电影网一区二区| 丁香婷婷综合五月| 欧美日韩在线播放| 久久天堂av综合合色蜜桃网| 国产精品剧情在线亚洲| 亚洲国产精品久久久久婷婷884| 青娱乐精品视频在线| www.日韩精品| 欧美一级在线免费| 亚洲欧美影音先锋| 久久国产三级精品| 色成人在线视频| 久久久久国产成人精品亚洲午夜| 亚洲品质自拍视频网站| 国产自产视频一区二区三区| 在线观看www91| 国产人成亚洲第一网站在线播放| 亚洲激情网站免费观看| 韩国在线一区二区| 欧美精品xxxxbbbb| 亚洲天堂福利av| 国产精品自拍在线| 7777精品伊人久久久大香线蕉最新版| 久久精品一区二区三区av| 视频一区中文字幕国产| 92国产精品观看| 国产精品欧美综合在线| 精品一区免费av| 欧美人体做爰大胆视频| 中文字幕精品综合| 蜜桃av噜噜一区| 欧美伦理视频网站| 一区二区三区四区不卡视频| 岛国精品一区二区| 2014亚洲片线观看视频免费| 香蕉加勒比综合久久| 91原创在线视频| 国产精品入口麻豆九色| 国产最新精品免费| 欧美成人官网二区| 麻豆国产精品一区二区三区 | 久久品道一品道久久精品| 婷婷久久综合九色综合伊人色| 日本黄色一区二区| 一区二区中文字幕在线| 成人高清在线视频| 国产日韩精品久久久| 欧美亚洲免费在线一区| 日本亚洲电影天堂| 成人欧美一区二区三区小说 | 久久精品国产久精国产| 欧美日韩激情一区| 午夜欧美大尺度福利影院在线看| 91精品1区2区| 亚洲小少妇裸体bbw| 欧美色视频在线| 午夜精品免费在线观看| 4hu四虎永久在线影院成人|