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

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

?? cul.h

?? zigbee 2430 演示 就是個演示程序么 說這么多干嘛 暈
?? H
?? 第 1 頁 / 共 3 頁
字號:
*      data from the AES module. The function _culDmaToAes(...)_ is used to set
*      up a DMA descriptor for transferring data to be converted to the AES
*      module.
*
* Parameters:
*
* @param  DMA_DESC* pDmaChannel
*         Pointer to the DMA descriptor to be used for DMA transfer of data
*         converted by the AES module.
* @param  BYTE*	 pDstAddr
*         Pointer to the start address where the converted data is to be stored.
*         The length of this data field should be a multiplum of 16 bytes, as
*         the AES module operates on blocks of 16 bytes (128 bit).
* @param  WORD	 length
*         Number of bytes to be converted in total. This number should be a
*         multiplum of 16 bytes, as the AES module operates on blocks of 16
*         bytes (128 bit).
* @param  BOOL	 generateInterrupt
*         If this parameter is TRUE the DMA channel will generate an interrupt
*         request when done. In order to generate an interrupt, the lines
*         INT_ENABLE(INUM_DMA, INT_ON); and EAL = TRUE; must also be included.
*
* @return BOOL
*         Function returns TRUE if the configuration was successful.
*
******************************************************************************/
BOOL culDmaFromAes(DMA_DESC* pDmaChannel, BYTE __xdata* pDstAddr, WORD length, BOOL generateInterrupt);


/******************************************************************************
* @fn  culDmaFromRadio
*
* @brief
*      This function configures DMA transfer from the radio Rx FiFo. The first
*      byte of the data to be transferred contains the number of bytes to be
*      transfer. The Rx FiFo may contain up to 128 bytes. When done, the DMA
*      channel may generate an interrupt.
*
* Parameters:
*
* @param  DMA_DESC*	 pDmaChannel
*         A pointer to the DMA channel structure to be used for the transfer.
* @param  BYTE*	 pDstAddr
*         The start address in __xdata space to where the data is to be stored.
* @param  BOOL	 generateInterrupt
*         If TRUE, the DMA channel will generate an interrupt request upon
*         completion.
*
* @return void
*
******************************************************************************/
void culDmaFromRadio(DMA_DESC* pDmaChannel, BYTE* pDstAddr, BOOL generateInterrupt);



/******************************************************************************
* @fn  culDmaToRadio
*
* @brief
*      This function configures DMA transfer to the radio Tx FiFo.
*
* Parameters:
*
* @param  DMA_DESC*  pDmaChannel
*         A pointer to the DMA channel structure to be used for the transfer.
* @param  WORD       length
* @param  BYTE*      pSrcAddr
*         The start address in __xdata space of the data to be transferred.
* @param  BOOL       generateInterrupt
*         If TRUE, the DMA channel will generate an interrupt request upon
*         completion.
*
* @return void
*
******************************************************************************/
void culDmaToRadio(DMA_DESC* pDmaChannel, WORD length, BYTE * pSrcAddr, BOOL generateInterrupt);


/******************************************************************************
* @fn  culDmaToUart0
*
* @brief       Description of the function.
*      This function configures a DMA transfer to UART0.
*
* Parameters:
*
* @param  DMA_DESC*	 pDmaChannel
*         A pointer to the DMA channel structure to be used for the transfer.
* @param  WORD	 length
*         The number of bytes to be transferred.
* @param  BYTE*	 pSrcAddr
*         The start address in __xdata space of the data to be transferred.
* @param  BOOL	 generateInterrupt
*         If TRUE, the DMA channel will generate an interrupt request upon completion.
*
* @return void
*
******************************************************************************/
void culDmaToUart0(DMA_DESC* pDmaChannel, WORD length, BYTE * pSrcAddr, BOOL generateInterrupt);



/******************************************************************************
*******************      TIMER4 administrator functions    ********************
******************************************************************************/

// Structure for the TIMER administrator entry table
typedef struct {
    BYTE        counter;
    BYTE        timeout;
    FUNCTION*   callBackFunction;
} TIMER4_TABLE_ENTRY;

#define TIMER_ADM_TABLE_LENGTH   3


/******************************************************************************
* @fn  culTimer4AdmInit
*
* @brief
*      This function sets up the timer 4 administration. The table is cleared,
*      timer 4 is set up to generate interrupts at a 1m-second interval,
*      timer 4 interrupt is enabled and the timer is turned on.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void culTimer4AdmInit(void);


/******************************************************************************
* @fn  T4_Adm_IRQ
*
* @brief
*     This interrupt routine is run each time timer 4 generates an interrupt
*     request (every m-second). The table is parsed through, and the counters
*     are incremented. If a counter is equal to the timeout value in the table,
*     the _callBackFunction_ is called and the counter is reset. At the end,
*     the interrupt flags are cleared.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
__interrupt void T4_Adm_IRQ (void);


/******************************************************************************
* @fn  culTimer4AdmSet
*
* @brief
*      This function arranges calling of the _callBackFunction_ at a desired
*      time interval in m-seconds. Up to _TIMER_ADM_TABLE_LENGTH_ different
*      functions can be set up to be run at different time intervals. This way
*      timer 4 is configured to run many interrupt routines at different time
*      intervals, thus leaving the other timers free to be configured as desired.
*
* Parameters:
*
* @param  DWORD	 timeout
*         The number of m-seconds between each time the _callBackFunction_
*         is run.
* @param  FUNCTION*	 callBackFunction
*         Pointer to the function to be run at the given interval. The
*         _callBackFunction_ must be of the type _void callBackFunction(void)_,
*         i.e. no arguments and no return value.
*
* @return BYTE
*         The entry number in the table. The value 0xFF indicates that an
*         error has occured and that the registration was unsuccessful. The
*         returned value must be used as an argument when the entry is to be
*         cleared using the function _culTimer4AdmClear(...)_.
*
******************************************************************************/
BYTE culTimer4AdmSet(DWORD timeout, FUNCTION* callBackFunction);



/******************************************************************************
* @fn  culTimer4AdmClear
*
* @brief
*      This function clears the table entry _entry_ from the table of functions
*      to be called at different timeouts.
*
* Parameters:
*
* @param  BYTE	 entry
*         The index number of the entry in the table that is to be cleared.
*         This value must be identical to the returned value from the function
*         _culTimer4AdmSet(...)_.
*
* @return void
*
******************************************************************************/
void culTimer4AdmClear(BYTE entry);



/******************************************************************************
* @fn  culTimer4AdmReset
*
* @brief
*      This function resets the counter of the entry in question.
*
* Parameters:
*
* @param  BYTE	 entry
*         The index number of the entry in the table that is reset. This value
*         must be identical to the returned value from the function
*         _culTimer4AdmSet(...)_.
*
* @return void
*
******************************************************************************/
void culTimer4AdmReset(BYTE entry);


/******************************************************************************
*******************      Simple Packet Protocol (SPP)      ********************
******************************************************************************/
#define SPP_MAX_PAYLOAD_LENGTH          122
#define SPP_HEADER_AND_FOOTER_LENGTH    5
#define SPP_FOOTER_LENGTH               2
#define SPP_ACK_LENGTH                  1

typedef struct{
    BYTE payloadLength;
    BYTE destAddress;
    BYTE flags;
    BYTE *payload;
}SPP_TX_STRUCT;

typedef struct{
    BYTE payloadLength;
    BYTE destAddress;
    BYTE srcAddress;
    BYTE flags;
    BYTE payload[SPP_MAX_PAYLOAD_LENGTH + SPP_FOOTER_LENGTH];
}SPP_RX_STRUCT;

#define BROADCAST_ADDRESS               0
#define WAIT_UNTIL_RECEIVE              0

#define SEQUENCE_BIT                    0x80
#define RETRANSMISSION                  0x04
#define ACK                             0x02
#define DO_ACK                          0x01
#define DO_NOT_ACK                      0x00


#define ACK_TIMEOUT                     15
#define ACK_RETRIES                     3

// TX status flags
#define TX_IN_PROGRESS                  0x80
#define TX_SUCCESSFUL                   0x40
#define DEST_UNREACHABLE                0x20
#define TX_IDLE                         0x00

// RX status flags
#define RX_IN_PROGRESS                  0x80
#define PACKET_RECEIVED                 0x40
#define RX_WAIT                         0x20
#define RX_COMPLETE                     0x10
#define RX_IDLE                         0x00

// sppSend return values
#define CHANNEL_BUSY                    0x04
#define TOO_LONG                        0x08



/******************************************************************************
* @fn  sppInit
*
* @brief
*      This function initialises the Simple Packet Protocol (SPP). Two DMA
*      channels are requested from the DMA administrator and set up to transfer
*      data to and from the Rx FiFo and Tx FiFo respectively. The Timer 4
*      administrator is also set up, and this unit will be used to generate
*      interrupts when a packet is not ACK'ed by the recipient whithin some time.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国免费一区二区三区| 欧美精品一二三四| 国产三级久久久| 国产一区美女在线| 精品人在线二区三区| 国产精品久久久久久久岛一牛影视 | 色综合色狠狠天天综合色| 久久老女人爱爱| 亚洲成在人线免费| 欧美精选午夜久久久乱码6080| 亚洲一区欧美一区| 欧美日韩一区二区三区视频 | 久久久综合激的五月天| 久久丁香综合五月国产三级网站| 91精品国产免费久久综合| 日本aⅴ精品一区二区三区| 日韩一级完整毛片| 婷婷国产v国产偷v亚洲高清| 欧美性xxxxxx少妇| 调教+趴+乳夹+国产+精品| 欧美性色黄大片| 日韩中文欧美在线| 欧美精品一区二区三区高清aⅴ | 久久精品噜噜噜成人88aⅴ| 日韩女优电影在线观看| 久久精品国产亚洲5555| 精品盗摄一区二区三区| 国产乱码精品一品二品| 国产精品久久久久久久久快鸭| av成人免费在线| 日韩av午夜在线观看| 国产精品视频一二三| 91精品国产一区二区三区| 成人午夜视频福利| 蜜臀av一区二区在线观看| 日韩一区欧美小说| 欧美不卡在线视频| 欧美日韩一区高清| 99免费精品在线观看| 婷婷亚洲久悠悠色悠在线播放| 中文字幕精品综合| 精品少妇一区二区三区在线播放 | 丝袜诱惑制服诱惑色一区在线观看| 欧美变态tickling挠脚心| 色婷婷av一区二区三区之一色屋| 精品午夜久久福利影院| 亚洲国产一区二区视频| 国产精品盗摄一区二区三区| 日韩美一区二区三区| 欧美日韩中字一区| 色狠狠av一区二区三区| 国产成人一区在线| 美女一区二区三区在线观看| 亚洲自拍偷拍av| 中文字幕日本乱码精品影院| 久久综合九色综合97婷婷| 7777精品伊人久久久大香线蕉经典版下载 | 日韩综合一区二区| 亚洲一区视频在线观看视频| 国产精品午夜在线| 国产人成亚洲第一网站在线播放| 日韩一级黄色大片| 4438亚洲最大| 69堂精品视频| 欧美巨大另类极品videosbest| 91国偷自产一区二区开放时间| 国v精品久久久网| 国产伦精品一区二区三区视频青涩| 日韩**一区毛片| 亚洲成av人片在线观看| 亚洲一区二区欧美日韩| 亚洲综合在线观看视频| 亚洲色图欧洲色图| 中文字幕日韩一区| 国产精品久久久久久久第一福利| 国产精品色婷婷| 成人欧美一区二区三区小说 | 精品久久国产97色综合| 久久久精品国产免大香伊| 日韩一区二区免费在线观看| 91精品国产综合久久精品| 欧美一级搡bbbb搡bbbb| 日韩一级高清毛片| 精品国产第一区二区三区观看体验| 日韩一区二区中文字幕| 精品国产区一区| 久久精品亚洲乱码伦伦中文 | 国模套图日韩精品一区二区| 国产一区二区三区蝌蚪| 国产91在线看| 91香蕉视频污在线| 欧美日韩在线综合| 日韩午夜在线观看视频| 精品久久久久一区二区国产| 国产精品色哟哟| 亚洲一区在线观看网站| 日本欧美一区二区| 国产精品小仙女| 91亚洲国产成人精品一区二区三| 在线看一区二区| 日韩三级免费观看| 中文字幕高清一区| 午夜欧美视频在线观看| 激情伊人五月天久久综合| 成人永久aaa| 欧美亚洲高清一区二区三区不卡| 日韩视频不卡中文| 国产精品乱码一区二区三区软件 | 欧美不卡一区二区三区| 国产精品短视频| 日本特黄久久久高潮| 国产精品一色哟哟哟| 在线视频一区二区三| 91精品国产aⅴ一区二区| 久久精品网站免费观看| 亚洲香肠在线观看| 国内精品国产三级国产a久久| 不卡一区在线观看| 欧美一区二区三区四区在线观看| 精品88久久久久88久久久| 国产精品国产三级国产有无不卡| 午夜亚洲国产au精品一区二区| 国产自产高清不卡| 一本一本大道香蕉久在线精品| 日韩精品最新网址| 亚洲另类在线制服丝袜| 国产一区二区女| 欧美日韩和欧美的一区二区| 中文字幕第一区| 久久国产尿小便嘘嘘尿| 91久久精品一区二区三| 国产欧美精品一区aⅴ影院| 水蜜桃久久夜色精品一区的特点 | 欧美乱妇15p| 国产精品麻豆网站| 国产真实乱对白精彩久久| 欧美乱妇一区二区三区不卡视频| 国产精品国产三级国产普通话三级| 肉丝袜脚交视频一区二区| 不卡的av中国片| 久久婷婷一区二区三区| 日韩va欧美va亚洲va久久| 日本韩国欧美在线| 国产精品色噜噜| 粉嫩aⅴ一区二区三区四区| 日韩视频在线一区二区| 午夜电影一区二区三区| 91九色02白丝porn| 综合久久久久综合| 99久久精品一区| 国产精品久久久久久久久免费樱桃| 韩国理伦片一区二区三区在线播放| 91精品欧美久久久久久动漫| 亚洲国产成人tv| 欧美性猛交xxxxxx富婆| 亚洲免费在线电影| 99久精品国产| 国产精品蜜臀在线观看| 成人激情校园春色| 国产精品欧美久久久久无广告| 国产99久久久国产精品| 国产日韩精品久久久| 高清不卡一区二区在线| 国产女同性恋一区二区| 成人激情文学综合网| 国产精品美女久久久久av爽李琼| 粉嫩av一区二区三区在线播放| 久久免费国产精品| 国产伦精品一区二区三区视频青涩| 精品播放一区二区| 国产精品996| 国产精品不卡在线观看| 99在线精品视频| 一区二区三区四区在线| 色综合视频一区二区三区高清| 亚洲一区二区三区爽爽爽爽爽| 91黄色激情网站| 亚洲成人一区在线| 日韩欧美高清dvd碟片| 精品无人码麻豆乱码1区2区| 久久久青草青青国产亚洲免观| 国产99久久久精品| 亚洲视频图片小说| 欧美日韩国产区一| 久久91精品久久久久久秒播| 久久久亚洲欧洲日产国码αv| 国产69精品一区二区亚洲孕妇| 中文字幕在线免费不卡| 在线观看精品一区| 另类小说色综合网站| 中文幕一区二区三区久久蜜桃| 日本黄色一区二区| 日本亚洲视频在线| 欧美激情一区二区三区全黄| 91原创在线视频| 日韩电影免费在线观看网站| 久久婷婷色综合| 91久久国产综合久久| 九色porny丨国产精品| 一区免费观看视频|