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

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

?? mac_radio_defs.h

?? Zigbee2006入門(源代碼+文檔講解+系統推薦)
?? H
字號:
/**************************************************************************************************
    Filename:
    Revised:        $Date: 2007-03-28 18:33:09 -0700 (Wed, 28 Mar 2007) $
    Revision:       $Revision: 13890 $

    Description:

    Describe the purpose and contents of the file.

    Copyright (c) 2006 by Texas Instruments, Inc.
    All Rights Reserved.  Permission to use, reproduce, copy, prepare
    derivative works, modify, distribute, perform, display or sell this
    software and/or its documentation for any purpose is prohibited
    without the express written consent of Texas Instruments, Inc.
**************************************************************************************************/

#ifndef MAC_RADIO_DEFS_H
#define MAC_RADIO_DEFS_H

/* ------------------------------------------------------------------------------------------------
 *                                             Includes
 * ------------------------------------------------------------------------------------------------
 */
#include "hal_defs.h"
#include "hal_board_cfg.h"
#include "hal_mac_cfg.h"
#include "mac_spec.h"
#include "mac_mcu.h"
#include "mac_mem.h"
#include "mac_csp_tx.h"
#include "mac_assert.h"


/* ------------------------------------------------------------------------------------------------
 *                                      Target Specific Defines
 * ------------------------------------------------------------------------------------------------
 */

/* immediate strobe commands */
#define ISTXCALN      0xE1
#define ISRXON        0xE2
#define ISTXON        0xE3
#define ISTXONCCA     0xE4
#define ISRFOFF       0xE5
#define ISFLUSHRX     0xE6
#define ISFLUSHTX     0xE7
#define ISACK         0xE8
#define ISACKPEND     0xE9

/* FSCTRLL */
#define FREQ_2405MHZ                  0x65

/* RFSTATUS */
#define TX_ACTIVE                     BV(4)
#define FIFO                          BV(3)
#define FIFOP                         BV(2)
#define SFD                           BV(1)
#define CCA                           BV(0)

/* IEN2 */
#define RFIE                          BV(0)

/* MDMCTRL0L */
#define AUTOACK                       BV(4)

/* MDMCTRL0H */
#define PAN_COORDINATOR               BV(4)
#define ADDR_DECODE                   BV(3)

/* MDMCTRL1L */
#define MDMCTRL1L_RESET_VALUE         0x00
#define RX_MODE(x)                    ((x) << 0)
#define RX_MODE_INFINITE_RECEPTION    RX_MODE(2)
#define RX_MODE_NORMAL_OPERATION      RX_MODE(0)

/* FSMSTATE */
#define FSM_FFCTRL_STATE_RX_INF       31      /* infinite reception state - not documented in datasheet */

/* RFPWR */
#define ADI_RADIO_PD                  BV(4)
#define RREG_RADIO_PD                 BV(3)

/* ADCCON1 */
#define RCTRL1                        BV(3)
#define RCTRL0                        BV(2)
#define RCTRL_BITS                    (RCTRL1 | RCTRL0)
#define RCTRL_CLOCK_LFSR              RCTRL0

/* FSMTC1 */
#define ABORTRX_ON_SRXON              BV(5)
#define PENDING_OR                    BV(1)

/* CSPCTRL */
#define CPU_CTRL                      BV(0)
#define CPU_CTRL_ON                   CPU_CTRL
#define CPU_CTRL_OFF                  (!(CPU_CTRL))


/* ------------------------------------------------------------------------------------------------
 *                                    Unique Radio Define
 * ------------------------------------------------------------------------------------------------
 */
#define MAC_RADIO_CC2430
#define MAC_RADIO_FEATURE_HARDWARE_OVERFLOW_NO_ROLLOVER
///////////////////////////////////////////////////////////////////////////////////////
//  REV_B_WORKAROUND : workaround to reduce effects of chip bug #353.
//  For now, the workaround must be enabled. It appears to be correcting
//  a separate issue that is under investigation.  Later it may be possible
//  uncomment the #ifndef line to remove this for CC2430 when non Rev B parts.
//  Better yet would be to remove completely when Rev B parts are obsolete.
//#ifndef _REMOVE_REV_B_WORKAROUNDS
#define MAC_RADIO_RXBUFF_CHIP_BUG
//#endif
///////////////////////////////////////////////////////////////////////////////////////


/* ------------------------------------------------------------------------------------------------
 *                                    Common Radio Defines
 * ------------------------------------------------------------------------------------------------
 */
#define MAC_RADIO_CHANNEL_DEFAULT               11
#define MAC_RADIO_TX_POWER_DEFAULT              0x1F
#define MAC_RADIO_TX_POWER_MAX_MINUS_DBM        25

#define MAC_RADIO_RECEIVER_SENSITIVITY_DBM      -91 /* dBm */
#define MAC_RADIO_RECEIVER_SATURATION_DBM       10  /* dBm */

/* offset applied to hardware RSSI value to get RF power level in dBm units */
#define MAC_RADIO_RSSI_OFFSET                   HAL_MAC_RSSI_OFFSET

/* precise values for small delay on both receive and transmit side */
#define MAC_RADIO_RX_TX_PROP_DELAY_MIN_USEC     3.076  /* usec */
#define MAC_RADIO_RX_TX_PROP_DELAY_MAX_USEC     3.284  /* usec */


/* ------------------------------------------------------------------------------------------------
 *                                      Common Radio Macros
 * ------------------------------------------------------------------------------------------------
 */
#define MAC_RADIO_MCU_INIT()                          macMcuInit()

#define MAC_RADIO_TURN_ON_POWER()                     st( RFPWR &= ~RREG_RADIO_PD; while((RFPWR & ADI_RADIO_PD)); )
#define MAC_RADIO_TURN_OFF_POWER()                    st( RFPWR |=  RREG_RADIO_PD; )
#define MAC_RADIO_TURN_ON_OSC()                       MAC_ASSERT(SLEEP & XOSC_STB)/* oscillator should already be stable, it's mcu oscillator too */
#define MAC_RADIO_TURN_OFF_OSC()                      /* don't do anything, oscillator is also mcu oscillator */

#define MAC_RADIO_RX_FIFO_HAS_OVERFLOWED()            ((RFSTATUS & FIFOP) && !(RFSTATUS & FIFO))
#define MAC_RADIO_RX_FIFO_IS_EMPTY()                  (!(RFSTATUS & FIFO) && !(RFSTATUS & FIFOP))

#define MAC_RADIO_SET_RX_THRESHOLD(x)                 st( IOCFG0 = ((x)-1); )
#define MAC_RADIO_RX_IS_AT_THRESHOLD()                (RFSTATUS & FIFOP)
#define MAC_RADIO_ENABLE_RX_THRESHOLD_INTERRUPT()     MAC_MCU_FIFOP_ENABLE_INTERRUPT()
#define MAC_RADIO_DISABLE_RX_THRESHOLD_INTERRUPT()    MAC_MCU_FIFOP_DISABLE_INTERRUPT()
#define MAC_RADIO_CLEAR_RX_THRESHOLD_INTERRUPT_FLAG() st( RFIF = ~IRQ_FIFOP; )

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  REV_B_WORKAROUND : work around for chip bug #267, replace these lines with following.
#ifndef _REMOVE_REV_B_WORKAROUNDS
#define MAC_RADIO_TX_ACK()                            st( FSMTC1 &= ~PENDING_OR; )
#define MAC_RADIO_TX_ACK_PEND()                       st( FSMTC1 |=  PENDING_OR; )
#else
//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
//  keep this code, delete the rest
#define MAC_RADIO_TX_ACK()                            st( RFST = ISACK; )
#define MAC_RADIO_TX_ACK_PEND()                       st( RFST = ISACKPEND; )
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define MAC_RADIO_RX_ON()                             st( RFST = ISRXON;    )
#define MAC_RADIO_RXTX_OFF()                          st( RFST = ISRFOFF;   )
#define MAC_RADIO_FLUSH_RX_FIFO()                     st( RFST = ISFLUSHRX; RFST = ISFLUSHRX; )
#define MAC_RADIO_FLUSH_TX_FIFO()                     st( RFST = ISFLUSHTX; )

#define MAC_RADIO_READ_RX_FIFO(pData,len)             macMemReadRxFifo((pData),(uint8)(len))
#define MAC_RADIO_WRITE_TX_FIFO(pData,len)            macMemWriteTxFifo((pData),(uint8)(len))

#define MAC_RADIO_SET_PAN_COORDINATOR(b)              st( MDMCTRL0H = (MDMCTRL0H & ~PAN_COORDINATOR) | (PAN_COORDINATOR * (b!=0)); )
#define MAC_RADIO_SET_CHANNEL(x)                      st( FSCTRLL = FREQ_2405MHZ + 5 * ((x) - 11); )
#define MAC_RADIO_SET_TX_POWER(x)                     st( TXCTRLL = x; )

#define MAC_RADIO_READ_PAN_ID()                       (PANIDL + (macMemReadRamByte(&PANIDH) << 8))
#define MAC_RADIO_SET_PAN_ID(x)                       st( PANIDL = (x) & 0xFF; PANIDH = (x) >> 8; )
#define MAC_RADIO_SET_SHORT_ADDR(x)                   st( SHORTADDRL = (x) & 0xFF; SHORTADDRH = (x) >> 8; )
#define MAC_RADIO_SET_IEEE_ADDR(p)                    macMemWriteRam((macRam_t *) &IEEE_ADDR0, p, 8)

#define MAC_RADIO_REQUEST_ACK_TX_DONE_CALLBACK()      st( MAC_MCU_TXDONE_CLEAR_INTERRUPT(); MAC_MCU_TXDONE_ENABLE_INTERRUPT(); )
#define MAC_RADIO_CANCEL_ACK_TX_DONE_CALLBACK()       MAC_MCU_TXDONE_DISABLE_INTERRUPT()

#define MAC_RADIO_RANDOM_BYTE()                       macMcuRandomByte()

#define MAC_RADIO_TX_RESET()                          macCspTxReset()
#define MAC_RADIO_TX_PREP_CSMA_UNSLOTTED()            macCspTxPrepCsmaUnslotted()
#define MAC_RADIO_TX_PREP_CSMA_SLOTTED()              macCspTxPrepCsmaSlotted()
#define MAC_RADIO_TX_PREP_SLOTTED()                   macCspTxPrepSlotted()
#define MAC_RADIO_TX_GO_CSMA()                        macCspTxGoCsma()
#define MAC_RADIO_TX_GO_SLOTTED()                     macCspTxGoSlotted()

#define MAC_RADIO_FORCE_TX_DONE_IF_PENDING()          macCspForceTxDoneIfPending()

#define MAC_RADIO_TX_REQUEST_ACK_TIMEOUT_CALLBACK()   macCspTxRequestAckTimeoutCallback()
#define MAC_RADIO_TX_CANCEL_ACK_TIMEOUT_CALLBACK()    macCspTxCancelAckTimeoutCallback()

#define MAC_RADIO_TIMER_TICKS_PER_USEC()              HAL_CPU_CLOCK_MHZ /* never fractional */
#define MAC_RADIO_TIMER_TICKS_PER_BACKOFF()           (HAL_CPU_CLOCK_MHZ * MAC_SPEC_USECS_PER_BACKOFF)
#define MAC_RADIO_TIMER_TICKS_PER_SYMBOL()            (HAL_CPU_CLOCK_MHZ * MAC_SPEC_USECS_PER_SYMBOL)

#define MAC_RADIO_TIMER_CAPTURE()                     macMcuTimerCapture()
#define MAC_RADIO_TIMER_FORCE_DELAY(x)                st( T2TLD = (x) & 0xFF;  T2THD = (x) >> 8; )  /* timer must be running */

#define MAC_RADIO_TIMER_SLEEP()                       st( T2CNF &= ~RUN; while (T2CNF & RUN); )
#define MAC_RADIO_TIMER_WAKE_UP()                     st( T2CNF |=  RUN; while (!(T2CNF & RUN)); )

#define MAC_RADIO_BACKOFF_COUNT()                     macMcuOverflowCount()
#define MAC_RADIO_BACKOFF_CAPTURE()                   macMcuOverflowCapture()
#define MAC_RADIO_BACKOFF_SET_COUNT(x)                macMcuOverflowSetCount(x)
#define MAC_RADIO_BACKOFF_SET_COMPARE(x)              macMcuOverflowSetCompare(x)

#define MAC_RADIO_BACKOFF_COMPARE_CLEAR_INTERRUPT()   st( T2CNF = RUN | SYNC | (~OFCMPIF & T2CNF_IF_BITS); )
#define MAC_RADIO_BACKOFF_COMPARE_ENABLE_INTERRUPT()  macMcuOrT2PEROF2(OFCMPIM)
#define MAC_RADIO_BACKOFF_COMPARE_DISABLE_INTERRUPT() macMcuAndT2PEROF2(~OFCMPIM)

#define MAC_RADIO_RECORD_MAX_RSSI_START()             macMcuRecordMaxRssiStart()
#define MAC_RADIO_RECORD_MAX_RSSI_STOP()              macMcuRecordMaxRssiStop()

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  REV_B_WORKAROUND : work around for chip bug #267, autoack is used as work around, need to disble for promiscuous mode
//  easiest to do here as part of address recognition since bug is exclusive to 2430.  Replace these lines with following
//  when Rev B is obsoleted.
#ifndef _REMOVE_REV_B_WORKAROUNDS
#define MAC_RADIO_TURN_ON_RX_FRAME_FILTERING()        st( MDMCTRL0H |=  ADDR_DECODE; MDMCTRL0L |=  AUTOACK; )
#define MAC_RADIO_TURN_OFF_RX_FRAME_FILTERING()       st( MDMCTRL0H &= ~ADDR_DECODE; MDMCTRL0L &= ~AUTOACK; )
#else
//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
//  keep this code, delete the rest
#define MAC_RADIO_TURN_ON_RX_FRAME_FILTERING()        st( MDMCTRL0H |=  ADDR_DECODE; )
#define MAC_RADIO_TURN_OFF_RX_FRAME_FILTERING()       st( MDMCTRL0H &= ~ADDR_DECODE; )
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


/* ------------------------------------------------------------------------------------------------
 *                                    Common Radio Externs
 * ------------------------------------------------------------------------------------------------
 */
extern const uint8 CODE macRadioDefsTxPowerTable[];


/* ------------------------------------------------------------------------------------------------
 *                              Transmit Power Setting Configuration
 * ------------------------------------------------------------------------------------------------
 */

/*
 *  To use actual register values for setting power level, uncomment the following #define.
 *  In this case, the value passed to the set power function will be written directly to TXCTRLL.
 *  Characterized values for this register can be found in the datasheet in the "power settings" table.
 */
//#define HAL_MAC_USE_REGISTER_POWER_VALUES


/**************************************************************************************************
 */
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
爽好久久久欧美精品| 丁香另类激情小说| 狠狠色丁香久久婷婷综合_中| 丁香桃色午夜亚洲一区二区三区| 欧美日韩卡一卡二| 国产欧美精品一区二区色综合| 一区二区久久久| 国产激情一区二区三区| 91精品国产乱码久久蜜臀| 亚洲乱码日产精品bd| 国产精品一区二区三区网站| 91麻豆精品国产91久久久久久久久 | 欧美乱妇23p| 中文字幕中文字幕中文字幕亚洲无线| 日韩成人精品在线观看| 一本一道波多野结衣一区二区| 久久久久国产精品厨房| 日本亚洲最大的色成网站www| 色综合久久久久综合体| 国产日本亚洲高清| 国产米奇在线777精品观看| 欧美一区二区三区四区在线观看| 亚洲欧美日韩在线播放| 成人激情免费网站| 欧美国产日韩一二三区| 国模娜娜一区二区三区| 欧美xxx久久| 久久国内精品视频| 日韩欧美国产一区二区三区| 青青草国产成人av片免费| 欧美日韩亚洲综合一区| 亚洲午夜免费视频| 欧美午夜电影在线播放| 亚洲电影视频在线| 欧美精品粉嫩高潮一区二区| 首页欧美精品中文字幕| 777a∨成人精品桃花网| 奇米一区二区三区| 91精品国产欧美一区二区18| 亚洲自拍偷拍网站| 欧美天堂一区二区三区| 石原莉奈在线亚洲二区| 日韩精品资源二区在线| 成人影视亚洲图片在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产在线视频一区二区三区| 在线精品观看国产| 一区二区免费在线播放| 日本精品一区二区三区四区的功能| 一区二区三区在线视频免费| 91黄视频在线观看| 午夜av电影一区| 欧美成人综合网站| 欧美国产一区二区在线观看| 99免费精品视频| 亚洲制服丝袜在线| 日韩一区二区三区视频在线| 国产一区二区在线视频| 中文字幕亚洲成人| 欧美日韩国产首页在线观看| 国内外精品视频| 国产精品福利一区| 91麻豆精品国产91久久久 | 在线观看国产精品网站| 亚洲v日本v欧美v久久精品| 日韩欧美国产一区二区三区 | 麻豆精品视频在线观看免费 | 国产乱码精品一区二区三区忘忧草| 国产亚洲精品福利| 欧美亚洲综合色| 国产综合久久久久影院| 亚洲综合无码一区二区| 精品久久久久久无| 色偷偷一区二区三区| 精彩视频一区二区三区| 一区二区三区不卡视频| 久久日韩精品一区二区五区| 色婷婷综合久久久久中文一区二区| 免费欧美在线视频| 亚洲精品久久久久久国产精华液| 欧美xxxxx裸体时装秀| 91成人免费在线| 国产自产高清不卡| 亚洲不卡一区二区三区| 中文字幕亚洲不卡| www国产亚洲精品久久麻豆| 99综合电影在线视频| 午夜精品久久久久久久99樱桃 | 99久久综合国产精品| 午夜精品久久久久久久99樱桃| 久久久久国产精品免费免费搜索| 91黄色免费版| 精品亚洲国产成人av制服丝袜| 亚洲欧美日韩电影| 欧美va在线播放| 欧美性受xxxx| 粉嫩蜜臀av国产精品网站| 亚洲国产成人porn| 国产精品欧美久久久久无广告 | 久久91精品久久久久久秒播| 亚洲色图在线视频| 国产日韩欧美麻豆| 亚洲精品在线观看视频| 日韩三区在线观看| 欧美一区二区三区在线视频| 欧美网站大全在线观看| 91丨九色porny丨蝌蚪| 粉嫩av一区二区三区粉嫩| 国产美女视频91| 久草在线在线精品观看| 一区二区三区美女| 精品成人一区二区三区四区| 国产毛片精品视频| 极品少妇xxxx偷拍精品少妇| 日本中文一区二区三区| 欧美精品一区二区三区视频| 国产91在线观看| 成人一级视频在线观看| 91亚洲精品一区二区乱码| 国产一区二区三区久久久| 久草在线在线精品观看| 精品系列免费在线观看| 麻豆freexxxx性91精品| 91丨porny丨在线| 波多野结衣在线aⅴ中文字幕不卡| 国产成+人+日韩+欧美+亚洲| 国产精品99久| 国产成人久久精品77777最新版本| 韩国三级中文字幕hd久久精品| 蜜臂av日日欢夜夜爽一区| 欧美精品一二三四| 一本色道久久加勒比精品| 欧美日韩国产a| 欧美一二三四在线| 色综合中文综合网| 精品卡一卡二卡三卡四在线| 日韩午夜三级在线| 久久久久久麻豆| 欧美激情在线观看视频免费| 国产精品入口麻豆九色| 亚洲综合色噜噜狠狠| 蜜臀国产一区二区三区在线播放 | 欧美亚洲禁片免费| 911国产精品| 国产欧美日韩不卡| 亚洲欧美日韩在线播放| 日韩中文字幕1| 日本不卡一区二区三区高清视频| 国产乱码字幕精品高清av | 日日摸夜夜添夜夜添亚洲女人| 国产在线观看一区二区| 色综合久久久久综合99| 欧洲一区二区av| 91精品国产一区二区人妖| 亚洲精品在线观看网站| 国产精品久久久久影院亚瑟| 一区二区三区四区激情| 亚洲人妖av一区二区| 亚洲六月丁香色婷婷综合久久| 亚洲第一久久影院| 国产精品 日产精品 欧美精品| 91视频你懂的| 日韩欧美一区二区三区在线| 国产欧美一区二区精品忘忧草 | 精品国产91洋老外米糕| 亚洲另类色综合网站| 国产精品系列在线播放| 精品视频一区 二区 三区| 国产精品入口麻豆原神| 激情综合亚洲精品| 欧美日韩国产小视频在线观看| 国产精品视频麻豆| 九九视频精品免费| 欧美精品日韩一本| 亚洲情趣在线观看| 香蕉久久一区二区不卡无毒影院 | 国产精品电影院| 美国十次综合导航| 欧美日韩在线电影| 亚洲日本欧美天堂| 北条麻妃一区二区三区| 国产午夜久久久久| 久久国产精品99久久久久久老狼 | 欧日韩精品视频| 中文字幕精品三区| 国产乱码精品一品二品| 日韩视频永久免费| 视频一区二区国产| 欧美人体做爰大胆视频| 亚洲欧美另类久久久精品| 成人黄色在线网站| 国产日韩在线不卡| 国产不卡视频在线观看| 久久综合久久99| 国产伦精品一区二区三区免费迷 | 成人av网址在线| 久久久久久久综合| 极品尤物av久久免费看| 2021久久国产精品不只是精品| 久久国产人妖系列|