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

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

?? hal_rf.c

?? cc2430最新的例子程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
*/
void halRfSetPanId(uint16 panId)
{
    PANIDL= LOBYTE(panId);
    PANIDH= HIBYTE(panId);
}


/***********************************************************************************
* @fn      halRfSetPower
*
* @brief   Set TX output power
*
* @param   uint8 power - power level: TXPOWER_MIN_4_DBM, TXPOWER_0_DBM,
*                        TXPOWER_4_DBM
*
* @return  uint8 - SUCCESS or FAILED
*/
uint8 halRfSetTxPower(uint8 power)
{
    uint8 v;

    switch(power)
    {
#ifdef INCLUDE_PA
      case HAL_RF_TXPOWER_0_DBM:
        v = 0x06;
        break;
    case HAL_RF_TXPOWER_13_DBM:
        v = 0x13;
        break;
    case HAL_RF_TXPOWER_15_DBM:
        v = 0x17;
        break;
    case HAL_RF_TXPOWER_18_DBM:
        v = 0x5F;
        break;
    case HAL_RF_TXPOWER_19_DBM:
        v = 0xFF;
        break;
#else
    case HAL_RF_TXPOWER_0_DBM:
        v = 0x5F;
        break;
    case HAL_RF_TXPOWER_MIN_4_DBM:
        v = 0x17;
        break;
#endif
    default:
        return FAILED;
    }

    // Set TX power
    TXCTRLL&= ~PA_LEVEL_MASK;
    TXCTRLL|= v;

    return SUCCESS;
}


/***********************************************************************************
* @fn      halRfSetGain
*
* @brief   Set gain mode - only applicable for units with CC2590/91.
*
* @param   uint8 - gain mode
*
* @return  none
*/
void halRfSetGain(uint8 gainMode)
{
    if (gainMode==HAL_RF_GAIN_LOW) {
        HAL_PA_LNA_RX_LGM();
        rssiOffset = RSSI_OFFSET_LNA_LOWGAIN;
    } else {
        HAL_PA_LNA_RX_HGM();
        rssiOffset = RSSI_OFFSET_LNA_HIGHGAIN;
    }
}

/***********************************************************************************
* @fn      halRfWriteTxBuf
*
* @brief   Write to TX buffer
*
* @param   uint8* pData - buffer to write
*          uint8 length - number of bytes
*
* @return  none
*/
void halRfWriteTxBuf(uint8* pData, uint8 length)
{
    uint8 i;

    ISFLUSHTX();          // Making sure that the TX FIFO is empty.

    RFIF = ~IRQ_TXDONE;   // Clear TX done interrupt

    // Insert data
    for(i=0;i<length;i++){
        RFD = pData[i];
    }

}


/***********************************************************************************
* @fn      halRfAppendTxBuf
*
* @brief   Write to TX buffer
*
* @param   uint8* pData - buffer to write
*          uint8 length - number of bytes
*
* @return  none
*/
void halRfAppendTxBuf(uint8* pData, uint8 length)
{
    uint8 i;

    // Insert data
    for(i=0;i<length;i++){
        RFD = pData[i];
    }
}


/***********************************************************************************
* @fn      halRfReadRxBuf
*
* @brief   Read RX buffer
*
* @param   uint8* pData - data buffer. This must be allocated by caller.
*          uint8 length - number of bytes
*
* @return  none
*/
void halRfReadRxBuf(uint8* pData, uint8 length)
{
    while (length>0) {
        *pData++= RFD;
        length--;
    }
}



/***********************************************************************************
* @fn      halRfTransmit
*
* @brief   Transmit frame with Clear Channel Assessment.
*
* @param   none
*
* @return  uint8 - SUCCESS or FAILED
*/
uint8 halRfTransmit(void)
{
    uint8 status;

    ISTXON(); // Sending

    // Waiting for transmission to finish
    while(!(RFIF & IRQ_TXDONE) );

    RFIF = ~IRQ_TXDONE;
    status= SUCCESS;

    // TBD: use CCA
    return status;
}



/***********************************************************************************
* @fn      halRfReceiveOn
*
* @brief   Turn receiver on
*
* @param   none
*
* @return  none
*/
void halRfReceiveOn(void)
{
    FLUSH_RX_FIFO();
    ISRXON();
}

/***********************************************************************************
* @fn      halRfReceiveOff
*
* @brief   Turn receiver off
*
* @param   none
*
* @return  none
*/
void halRfReceiveOff(void)
{
    ISRFOFF();
    FLUSH_RX_FIFO();
}


/***********************************************************************************
* @fn      halRfDisableRxInterrupt
*
* @brief   Clear and disable RX interrupt.
*
* @param   none
*
* @return  none
*/
void halRfDisableRxInterrupt(void)
{
  // disable RX_FIFOP interrupt
  RFIM &= ~BV(5);
  // disable general RF interrupts
  IEN2 &= ~BV(0);
}


/***********************************************************************************
* @fn      halRfEnableRxInterrupt
*
* @brief   Enable RX interrupt.
*
* @param   none
*
* @return  none
*/
void halRfEnableRxInterrupt(void)
{
  // enable RX_FIFOP interrupt
  RFIM |= BV(5);
  // enable general RF interrupts
  IEN2 |= BV(0);
}


/***********************************************************************************
* @fn      halRfRxInterruptConfig
*
* @brief   Configure RX interrupt.
*
* @param   none
*
* @return  none
*/
void halRfRxInterruptConfig(ISR_FUNC_PTR pf)
{
    uint8 x;
    HAL_INT_LOCK(x);
    pfISR= pf;
    HAL_INT_UNLOCK(x);
}

/***********************************************************************************
* @fn      halRfWaitTransceiverReady
*
* @brief   Wait until the transciever is ready (SFD inactive).
*
* @param   none
*
* @return  none
*/
void halRfWaitTransceiverReady(void)
{
    while (RFSTATUS & (BV(1) | BV(4) ));
}

/************************************************************************************
 * @fn          macMcuRfIsr
 *
 * @brief       Interrupt service routine that handles FIFOP interrupts.
 *
 * @param       none
 *
 * @return      none
 */
HAL_ISR_FUNCTION( macMcuRfIsr, RF_VECTOR )
{
    uint8 rfim;
    uint8 x;

    HAL_INT_LOCK(x);

    rfim = RFIM;

    if ((RFIF & IRQ_FIFOP) & rfim)
    {
        (pfISR)();                  // Execute the custom ISR
        S1CON= 0;
        RFIF&= ~IRQ_FIFOP;
    }
    HAL_INT_UNLOCK(x);
}

/***********************************************************************************
* LOCAL FUNCTIONS
*/
static void halPaLnaInit(void)
{
#ifdef INCLUDE_PA  
    /* Initialize CC2591 to RX high gain mode */
    static uint8 fFirst= TRUE;
    
    if(fFirst) {
        uint8 i; 
        P1SEL&= ~0x02; 
        P1DIR|= 0x02; 
        P1_1= 1; 
        
        for (i=0; i<8; i++) { 
            asm("NOP");
        }
        fFirst = FALSE;
        rssiOffset = RSSI_OFFSET_LNA_HIGHGAIN;
    }
    
#else // do nothing
#endif
}



/***********************************************************************************
  Copyright 2007 Texas Instruments Incorporated. All rights reserved.

  IMPORTANT: Your use of this Software is limited to those specific rights
  granted under the terms of a software license agreement between the user
  who downloaded the software, his/her employer (which must be your employer)
  and Texas Instruments Incorporated (the "License").  You may not use this
  Software unless you agree to abide by the terms of the License. The License
  limits your use, and you acknowledge, that the Software may not be modified,
  copied or distributed unless embedded on a Texas Instruments microcontroller
  or used solely and exclusively in conjunction with a Texas Instruments radio
  frequency transceiver, which is integrated into your product.  Other than for
  the foregoing purpose, you may not use, reproduce, copy, prepare derivative
  works of, modify, distribute, perform, display or sell this Software and/or
  its documentation for any purpose.

  YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
  PROVIDED 揂S IS

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxxxx裸体时装秀| 91精品免费在线观看| 678五月天丁香亚洲综合网| 日本一区二区三区四区| 日韩高清不卡一区二区| 91免费观看国产| 国产日韩影视精品| 麻豆久久久久久久| 欧美日韩一级片在线观看| 中文字幕亚洲区| 国产一区在线看| 欧美一级一区二区| 亚瑟在线精品视频| 99re成人在线| 中文字幕乱码日本亚洲一区二区 | 国产欧美一区二区精品性| 亚洲成人动漫精品| 日本道免费精品一区二区三区| 国产亚洲精品bt天堂精选| 麻豆精品国产传媒mv男同| 欧美视频三区在线播放| 亚洲欧美另类久久久精品| 国产成人亚洲综合a∨婷婷| 日韩精品一区二区三区三区免费 | 国产精品乱人伦中文| 国产乱一区二区| 欧美tickling网站挠脚心| 婷婷久久综合九色综合绿巨人| 色激情天天射综合网| 自拍视频在线观看一区二区| 高清成人在线观看| 国产午夜亚洲精品理论片色戒| 国产一区二区三区精品视频| 欧美不卡一区二区三区四区| 日韩国产欧美在线播放| 91精品国产品国语在线不卡| 视频一区二区国产| 欧美另类高清zo欧美| 五月天激情综合| 制服丝袜国产精品| 免费日韩伦理电影| 日韩久久免费av| 韩国视频一区二区| 久久久亚洲精品石原莉奈 | 亚洲成av人片在线观看| 色婷婷精品大在线视频| 亚洲精品免费在线播放| 欧美调教femdomvk| 五月天亚洲精品| 日韩欧美123| 国产一区二区三区观看| 日本一区二区三区四区| a级精品国产片在线观看| 国产精品日日摸夜夜摸av| 成人黄色在线网站| 亚洲欧美日韩一区二区三区在线观看| av在线播放不卡| 国产成人免费9x9x人网站视频| 日本v片在线高清不卡在线观看| 亚洲男帅同性gay1069| 亚洲精品在线观看网站| 色综合久久99| 日韩成人一区二区三区在线观看| 国产精品美女久久久久久| 久久精品一区蜜桃臀影院| 在线观看一区二区视频| 国内精品伊人久久久久av一坑| 亚洲美女视频在线观看| 久久久精品国产免大香伊| 国产91在线|亚洲| 裸体一区二区三区| 亚洲欧洲精品一区二区三区 | 99视频一区二区| 在线电影欧美成精品| 欧美不卡视频一区| 日韩美女精品在线| 亚洲动漫第一页| 老司机精品视频一区二区三区| 久久成人18免费观看| 国产精品自拍网站| 欧美中文字幕一区二区三区亚洲| 激情六月婷婷久久| 免费在线看一区| 亚洲成人1区2区| 亚洲精品日日夜夜| 亚洲激情男女视频| 怡红院av一区二区三区| 午夜久久久久久久久| 91久久国产综合久久| 久久综合999| 午夜精品爽啪视频| 久久网站热最新地址| av动漫一区二区| 日本伊人精品一区二区三区观看方式 | 91精品在线观看入口| 精品亚洲aⅴ乱码一区二区三区| 国产精品美日韩| 欧美日韩一区二区在线视频| 国产麻豆欧美日韩一区| 一区二区三区在线视频免费| 欧美xxxx在线观看| 欧美伊人精品成人久久综合97| 国产自产高清不卡| 亚洲成av人片在线观看| 中文字幕成人在线观看| 日韩一区二区免费电影| 99re视频这里只有精品| 国内精品国产三级国产a久久| 亚洲一区二区精品3399| 久久久99精品免费观看| 欧美精品免费视频| 91在线播放网址| 国产乱子伦一区二区三区国色天香| 亚洲另类春色国产| 国产日产欧美一区二区视频| 欧美高清性hdvideosex| 色综合欧美在线| 国产精品2024| 日本在线不卡一区| 亚洲午夜视频在线| 国产精品国产三级国产| 久久综合国产精品| 日韩一级视频免费观看在线| 一道本成人在线| 成人av网址在线| 国产一区二区主播在线| 日韩电影在线观看一区| 一区二区三区电影在线播| 国产精品视频你懂的| 久久综合成人精品亚洲另类欧美| 欧美高清精品3d| 欧美性色黄大片手机版| av中文字幕在线不卡| 国产成人精品一区二| 韩国精品免费视频| 久久爱www久久做| 男人的天堂久久精品| 性久久久久久久| 亚洲综合色在线| 亚洲综合一二区| 亚洲综合久久久久| 亚洲免费观看视频| 亚洲欧美日韩中文播放| 中文字幕一区二区三区不卡在线| 久久精品一级爱片| 久久伊人蜜桃av一区二区| 精品国产sm最大网站免费看| 日韩欧美在线不卡| 日韩视频国产视频| 日韩午夜激情电影| 日韩女优制服丝袜电影| 精品日韩在线观看| 精品国产免费久久| 久久色成人在线| 欧美成人性战久久| 精品国产电影一区二区| 欧美精品一区二区久久婷婷| 精品剧情v国产在线观看在线| 欧美va亚洲va香蕉在线| 日韩精品一区二区三区在线| 欧美va在线播放| 久久久久88色偷偷免费| 欧美极品美女视频| 中文文精品字幕一区二区| 中文字幕精品一区二区三区精品| 国产精品女主播av| 亚洲欧美日韩国产成人精品影院 | 日韩女优av电影| 久久综合999| 国产精品美女www爽爽爽| 中文字幕在线不卡视频| 亚洲欧美aⅴ...| 亚洲第一主播视频| 日本在线观看不卡视频| 国内外成人在线视频| 国产成人免费在线| 99久久精品久久久久久清纯| 久久99久久精品| 九九九精品视频| 国产白丝网站精品污在线入口| 97久久久精品综合88久久| 色香蕉久久蜜桃| 欧美日韩国产首页在线观看| 欧美大度的电影原声| 欧美韩国日本一区| 亚洲男同性视频| 日韩高清在线一区| 国产精品18久久久久久vr | 婷婷六月综合网| 国产一区二区三区美女| 91在线视频观看| 欧美妇女性影城| 久久久www免费人成精品| 中文字幕在线观看不卡| 日日骚欧美日韩| 国产伦理精品不卡| 一本一道波多野结衣一区二区| 欧美日韩黄色一区二区| 精品国产欧美一区二区| 亚洲色图丝袜美腿|