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

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

?? packettransceiver.c

?? 基于cc1010的設計實例
?? C
字號:
/*****************************************************************************
 *                                                                           *
 *        **********                                                         *
 *       ************                                                        *
 *      ***        ***                                                       *
 *      ***   +++   ***                                                      *
 *      ***   + +   ***                                                      *
 *      ***   +                CHIPCON CC1010 Wireless audio project         *
 *      ***   + +   ***                                                      *
 *      ***   +++   ***        PacketTransceiver for the slave unit          *
 *      ***       ***                                                        *
 *       ***********                                                         *
 *        *********                                                          *
 *                                                                           *
 *****************************************************************************
 * This source file is part of a software project for Full Duplex,           *
 * single-chip, wireless intercom, written for the CC1010 chip               *
 * (RF-transceiver chip with integrated 8051 micro-controller).              *
 *****************************************************************************
 * Author:              OAE                                                  *
 *****************************************************************************
 * Revision history:                                                         *
 *                                                                           *
 * $Log: PacketTransceiver.c,v $
 * Revision 1.2  2003/08/18 12:20:10  tos
 * Synchronisation with library update (reentry issue).
 *
 * Revision 1.1  2003/08/04 12:33:15  tos
 * Initial version in CVS.
 *
 *                                                                           *
 *                                                                           *
 ****************************************************************************/

#include <chipcon/reg1010.h>
#include <chipcon/cc1010eb.h>
#include <chipcon/hal.h>

#define WAIT 1
#define DO_NOT_WAIT 0

// External variables
extern RF_RXTXPAIR_CALDATA xdata RF_CALDATA;
extern byte xdata DES_KEY[7];

// Function prototypes
void InitializeDisassembler();
void InitializeAssembler();
byte* DES(byte options, byte xdata* buffer, byte xdata* key,
    word length, bit wait);
void ResetReceiveBuffers();
ulong ConfigureTimer23(byte options, ulong period, word clkFreq);

/**************************************************************************
* PacketSend() - Routine for RF-transmission of a single packet           *
***************************************************************************
* Description:                                                            *
*   Used to send a packet using the chosen RF configuration. The RF       *
*   calibration data must be available.                                   *
***************************************************************************
* Input arguments:                                                        *
*   byte numpreambles: The number of preamble bytes (alternating ones and *
*       zeros) to be sent prior to the synchronization byte.              *
*   byte xdata *bufferaddress: A pointer to the location (in XRAM) where  *
*       the first byte of the packet, which is to be sent, is stored.     *
*   word packetsize: Defines the number of bytes to be sent.              *
*   RF_RXTXPAIR_SETTINGS* RF_SETTINGS: A pointer to the structure holding *
*       the chosen RF RX/TX parameters.                                   *
* Return value;                                                           *
*   None.                                                                 *
**************************************************************************/
void PacketSend(byte numpreambles, byte xdata *bufferaddress,
    word packetsize, RF_RXTXPAIR_SETTINGS* RF_SETTINGS)
{
    // Reset the PacketAssembler (for correct timing)
    InitializeAssembler();

    // Encrypt the buffered packet before transmission
    DES(DES_SINGLE_DES | DES_ENCRYPT | DES_CFB_MODE,
       bufferaddress, &DES_KEY, packetsize, DO_NOT_WAIT);

    // Prepare for transmission
    halRFSetRxTxOff(RF_TX, RF_SETTINGS, &RF_CALDATA);

    // Load buffer (RBUF) with the preamble byte
    RF_SEND_BYTE(RF_PREAMBLE_BYTE);

    // Activate the digital modem and PA
    RF_START_TX();

    // Send remaining preambles
    while(--numpreambles)
        RF_WAIT_AND_SEND_BYTE(RF_PREAMBLE_BYTE);

    // Send synchronising byte
    RF_WAIT_AND_SEND_BYTE(RF_SUITABLE_SYNC_BYTE);

    // Send the packet
    while(packetsize--)
        RF_WAIT_AND_SEND_BYTE(*bufferaddress++);

    // Send two extra bytes to empty buffer (RFBUF)
    RF_WAIT_AND_SEND_BYTE(0);
    RF_WAIT_AND_SEND_BYTE(0);

    // End transmission
    halRFSetRxTxOff(RF_OFF, NULL, NULL);

}// End function


/**************************************************************************
* PacketReceive() - Routine for RF-reception of a single packet           *
***************************************************************************
* Description:                                                            *
*   Used to receive a packet using the chosen RF configuration. The RF    *
*   calibration data must be available.                                   *
***************************************************************************
* Input arguments:                                                        *
*   byte numpreamblebitsense: The number of preamble bits (alternating    *
*       ones and zeros) that must be received before a synchronization    *
*       byte is accepted.                                                 *
*   byte xdata *bufferaddress: A pointer to the location (in XRAM) where  *
*       the first byte of the packet, which is to be received, is stored. *
*   word packetsize: Defines the number of bytes to be received.          *
*   RF_RXTXPAIR_SETTINGS* RF_SETTINGS: A pointer to the structure holding *
*       the chosen RF RX/TX parameters.                                   *
* Return value;                                                           *
*   None.                                                                 *
**************************************************************************/
void PacketReceive(byte numpreamblebitsense, byte xdata * bufferaddress,
    word packetsize, RF_RXTXPAIR_SETTINGS* RF_SETTINGS)
{
    // Save copies of packetsize
    word packetsizecopy1 = packetsize;
    word packetsizecopy2 = packetsize;

    // Save copies of buffer address
    byte xdata *bufferaddresscopy1 = bufferaddress;
    byte xdata *bufferaddresscopy2 = bufferaddress;

    // Define flag for reception timeout indication
    bit timeoutflag = 0;

    // Prepare for reception
    halRFSetRxTxOff(RF_RX, RF_SETTINGS, &RF_CALDATA);

    // Configure Timer 2 for timeout detection
    halConfigTimer23(TIMER2|TIMER23_NO_INT_TIMER, 6000, CC1010EB_CLKFREQ);
    INT_SETFLAG(INUM_TIMER2, INT_CLR);
    TIMER2_RUN(TRUE);

    // Set the number of preamble bits
    RF_SET_PREAMBLE_COUNT(numpreamblebitsense);

    // Start reception
    RF_START_RX();

    // Wait for synch or timeout
    while (TRUE)
    {
        if(INT_GETFLAG(INUM_TIMER2))
        {
            // Set timeout flag
            timeoutflag = 1;

            break;

        }// End if

        // Check if sync byte received
        if(RF_BYTE_RECEIVED())
        {
            // Clear interrupt flag
            INT_SETFLAG(INUM_RF, INT_CLR);

            break;

        }// End if

    }// End while
    
    /* Fill buffer with NULL-samples after timeout, and wait
    for the next packet */
    if (timeoutflag)
    {   
        // Fill buffers with NULL-samples
        ResetReceiveBuffers();

        // Wait for synch byte
        while (!RF_BYTE_RECEIVED());

        // Clear interrupt flag
        INT_SETFLAG(INUM_RF, INT_CLR);

    }// End if

    // Receive and buffer a packet after synch byte is received
    while(packetsizecopy1--)
        RF_WAIT_AND_RECEIVE_BYTE(*bufferaddresscopy1++);

    // Perform DES-decryption on the received packet
    DES(DES_SINGLE_DES | DES_DECRYPT | DES_CFB_MODE,
        bufferaddresscopy2, &DES_KEY, packetsizecopy2, WAIT);

    // Reset the PacketDisassembler (ensures correct timing)
    InitializeDisassembler();

    // Stop timer used for timeout detection
    TIMER2_RUN(FALSE);

    // Disable the preamble detector
    RF_SET_PREAMBLE_COUNT(RF_PREDET_OFF);

    // End reception
    halRFSetRxTxOff(RF_OFF, NULL, NULL);

}// End function

/**************************************************************************
* AverageFilterUpdate() - Routine for average filter update               *
***************************************************************************
* Description:                                                            *
*   Used to receive a number of preambles (alternating ones and zeros) in *
*   order to update the average filter of the RF-receiver. The average    *
*   filter is free running during update, and locked after completion.    *
*   The RF calibration data must be available.                            *
***************************************************************************
* Input arguments:                                                        *
*   byte numpreamblebitsense: The number of preamble bits (alternating    *
*       ones and zeros) that must be received before a synchronization    *
*       byte is accepted.                                                 *
*   RF_RXTXPAIR_SETTINGS* RF_SETTINGS: A pointer to the structure holding *
*       the chosen RF RX/TX parameters.                                   *
* Return value;                                                           *
*   None.                                                                 *
**************************************************************************/
void AverageFilterUpdate(byte numpreamblebitsense,
    RF_RXTXPAIR_SETTINGS* RF_SETTINGS)
{
    // Prepare for reception
    halRFSetRxTxOff(RF_RX, RF_SETTINGS, &RF_CALDATA);

    // Set the number of preamble bits
    RF_SET_PREAMBLE_COUNT(numpreamblebitsense);

    // Start reception
    RF_START_RX();

    // Wait for synch byte (which generate an interrupt)
    while (!RF_BYTE_RECEIVED());

    // Clear interrupt flag
    INT_SETFLAG(INUM_RF, INT_CLR);

    // Lock average filter
    RF_LOCK_AVERAGE_FILTER(TRUE);

    // Disable the preamble detector
    RF_SET_PREAMBLE_COUNT(RF_PREDET_OFF);

    // End reception
    halRFSetRxTxOff(RF_OFF, NULL, NULL);

}// End function

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中文字幕精品| 欧美不卡一区二区三区四区| 一区二区视频在线看| 99riav一区二区三区| 中文字幕在线观看一区| 色哟哟一区二区在线观看| 亚洲一区二区三区视频在线| 欧美精品第1页| 久久精品国产99久久6| 久久一留热品黄| 成人精品免费视频| 一区二区三区四区不卡在线 | 欧美午夜一区二区三区免费大片| 亚洲v精品v日韩v欧美v专区| 日韩无一区二区| 国产精品一区免费视频| 一区在线观看视频| 欧美私人免费视频| 免费成人深夜小野草| 久久这里只有精品6| 99久久精品一区| 亚洲成人在线网站| 久久天天做天天爱综合色| 北岛玲一区二区三区四区| 亚洲一区二区美女| 久久久久久久久伊人| 色噜噜狠狠色综合欧洲selulu| 午夜久久久影院| 久久久99精品免费观看| 一本大道久久a久久综合| 免费一区二区视频| 国产精品久久久久影院色老大 | 精品国产一区久久| 成人午夜看片网址| 天天综合色天天| 久久精品视频在线免费观看| 在线视频国产一区| 黄色日韩三级电影| 亚洲伦在线观看| 日韩精品在线一区| 99精品黄色片免费大全| 日韩av不卡在线观看| 国产精品网站导航| 欧美电影在线免费观看| 国产91精品精华液一区二区三区| 亚洲成人自拍偷拍| 国产亚洲欧美在线| 欧美日韩激情在线| 丁香婷婷深情五月亚洲| 日本成人超碰在线观看| 自拍偷拍国产精品| 精品国产亚洲在线| 欧美亚洲综合一区| 从欧美一区二区三区| 日韩精品色哟哟| 国产精品不卡在线观看| 欧美大胆一级视频| 欧美在线啊v一区| 国产成人免费视频网站| 热久久免费视频| 亚洲美女少妇撒尿| 久久精品一区二区三区四区| 欧美精品亚洲二区| 99国产一区二区三精品乱码| 国产在线国偷精品免费看| 亚洲福利一二三区| 亚洲欧洲色图综合| 久久久久久97三级| 91精品福利在线一区二区三区 | 成人高清免费观看| 久久9热精品视频| 婷婷国产在线综合| 亚洲欧美日韩中文字幕一区二区三区| 精品国产a毛片| 欧美一区二区三区日韩视频| 色国产综合视频| a美女胸又www黄视频久久| 国内精品国产三级国产a久久| 午夜欧美一区二区三区在线播放| 亚洲日本va午夜在线影院| 国产欧美精品在线观看| 精品国产乱码久久久久久蜜臀 | 91啪亚洲精品| 国产成人精品免费看| 久久99久久久久久久久久久| 视频一区二区三区中文字幕| 亚洲乱码国产乱码精品精小说| 国产精品久久久久天堂| 久久精品视频免费观看| 精品福利一区二区三区| 日韩视频在线一区二区| 在线不卡中文字幕播放| 欧美丝袜第三区| 日本韩国一区二区三区| 色哟哟亚洲精品| 一本大道久久a久久综合婷婷| 97国产一区二区| 99在线热播精品免费| 成人精品gif动图一区| 成人激情图片网| 成熟亚洲日本毛茸茸凸凹| 国产精品18久久久久久久久 | 久久久久久麻豆| 欧美精品一区在线观看| 欧美mv日韩mv亚洲| 欧美成人a在线| 精品国产不卡一区二区三区| 26uuu精品一区二区| 亚洲精品在线电影| 久久久久久久久蜜桃| 久久久国产精华| 久久天天做天天爱综合色| 国产欧美视频在线观看| 欧美激情综合在线| 中文字幕av一区二区三区| 亚洲天堂免费在线观看视频| 亚洲日本在线视频观看| 亚洲国产综合色| 日韩av在线免费观看不卡| 日本亚洲电影天堂| 久久99精品国产.久久久久| 国产原创一区二区三区| 国产精品2024| 91在线播放网址| 91久久精品一区二区二区| 欧美精品一级二级三级| 欧美一级专区免费大片| 精品国产三级a在线观看| 国产欧美一区二区三区在线看蜜臀 | 一区二区三区四区不卡视频| 亚洲午夜精品久久久久久久久| 亚洲高清免费在线| 日韩电影在线免费观看| 国内精品国产成人国产三级粉色| 国产激情偷乱视频一区二区三区| 成人蜜臀av电影| 色就色 综合激情| 欧美一区二区三区免费| 久久久久88色偷偷免费| **性色生活片久久毛片| 亚洲一区二区3| 麻豆成人综合网| 国产a级毛片一区| 色妞www精品视频| 91精品久久久久久蜜臀| 久久综合色一综合色88| 中文字幕一区二区三区四区不卡| 亚洲精品乱码久久久久久| 天堂久久一区二区三区| 国产一区二区调教| av爱爱亚洲一区| 欧美日韩国产一级| 久久网站最新地址| 亚洲免费视频成人| 毛片av中文字幕一区二区| 丁香六月综合激情| 欧美日韩在线播放一区| www国产精品av| 亚洲美女免费视频| 久久精品国产一区二区| 波多野结衣91| 欧美高清视频一二三区| 亚洲国产精品v| 午夜视频在线观看一区| 国产69精品久久99不卡| 欧美日韩国产综合一区二区三区| 2欧美一区二区三区在线观看视频| 亚洲色图视频免费播放| 免费在线观看一区| 99久久亚洲一区二区三区青草 | 久久精品一级爱片| 亚洲国产精品久久不卡毛片| 国产一区二区女| 欧美中文字幕一区| 久久久久久久久免费| 午夜精品福利一区二区三区蜜桃| 国产毛片一区二区| 欧美日韩国产一二三| 欧美国产在线观看| 奇米亚洲午夜久久精品| 91蜜桃网址入口| 26uuu亚洲综合色| 日韩中文字幕亚洲一区二区va在线| 国产91对白在线观看九色| 91精品福利在线一区二区三区 | 亚洲色图在线视频| 激情av综合网| 欧美巨大另类极品videosbest| 国产日韩v精品一区二区| 午夜精品久久久久久久| 99精品桃花视频在线观看| 欧美videofree性高清杂交| 一区二区三区日韩在线观看| 成人深夜视频在线观看| 欧美大片一区二区三区| 亚洲国产成人高清精品| 国产99久久久精品| 日韩欧美亚洲另类制服综合在线| 亚洲影院在线观看| 不卡电影一区二区三区|