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

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

?? cul.h

?? reference about wireless design which is helpful to everyone
?? H
?? 第 1 頁 / 共 3 頁
字號:
*         INT_ENABLE(INUM_DMA, INT_ON); and EA = TRUE; must also be included.
*
* @return void
*
******************************************************************************/
void culDmaToAes(DMA_DESC* pDmaChannel, BYTE * pSrcAddr, WORD length, BOOL generateInterrupt);


/******************************************************************************
* @fn  culDmaFromAes
*
* @brief
*      This function configures a DMA descriptor for transferring converted
*      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 // This length may be extended up to 250
#define SPP_HEADER_AND_FOOTER_LENGTH    3
#define SPP_FOOTER_LENGTH               0
#define SPP_ACK_LENGTH                  0

typedef struct{
    BYTE payloadLength;
    BYTE destAddress;
    BYTE srcAddress;
    BYTE flags;
    BYTE payload[SPP_MAX_PAYLOAD_LENGTH + SPP_FOOTER_LENGTH];
}SPP_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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人18精品视频| 中文字幕精品一区二区精品绿巨人| 91精品午夜视频| 欧美国产禁国产网站cc| 亚洲一区二区三区在线看| 美女国产一区二区| 色哦色哦哦色天天综合| www国产精品av| 午夜精品一区二区三区免费视频| 国产精品一二三四区| 欧美人动与zoxxxx乱| 国产精品高潮久久久久无| 美女一区二区三区在线观看| 色老汉av一区二区三区| 久久久国产综合精品女国产盗摄| 日本免费在线视频不卡一不卡二| 99精品国产91久久久久久| 精品剧情v国产在线观看在线| 亚洲一区二区美女| 91麻豆精品秘密| 国产精品欧美一级免费| 国产久卡久卡久卡久卡视频精品| 欧美亚洲高清一区| 亚洲精品欧美激情| 99在线精品观看| 国产亚洲欧洲一区高清在线观看| 裸体歌舞表演一区二区| 欧美精品在线观看播放| 亚洲一区中文日韩| 一本一道久久a久久精品| 国产精品久久久久久户外露出 | 精品盗摄一区二区三区| 日本伊人午夜精品| 欧美裸体一区二区三区| 亚洲国产一区二区三区 | 欧美激情一区三区| 久久国产精品一区二区| 在线成人高清不卡| 日本中文在线一区| 在线电影欧美成精品| 日日夜夜一区二区| 欧美二区三区的天堂| 视频一区二区中文字幕| 777色狠狠一区二区三区| 亚洲成人精品在线观看| 欧美日韩成人在线一区| 日日夜夜精品视频天天综合网| 欧美色老头old∨ideo| 一区二区三区免费看视频| 欧美三区在线视频| 婷婷综合久久一区二区三区| 欧美日韩一区小说| 免播放器亚洲一区| 精品成人佐山爱一区二区| 国产精品一区二区你懂的| 欧美激情综合五月色丁香| 成人h动漫精品一区二区| 亚洲人成网站在线| 在线播放视频一区| 日本免费在线视频不卡一不卡二 | 欧美日韩小视频| 日本成人在线一区| 国产亚洲va综合人人澡精品| www.爱久久.com| 亚洲成av人片| 精品国精品自拍自在线| 成人亚洲精品久久久久软件| 一区二区三区资源| 欧美一区永久视频免费观看| 国产专区欧美精品| 亚洲蜜臀av乱码久久精品| 日韩一区二区三免费高清| 国产精品 日产精品 欧美精品| 综合久久久久久| 欧美精品在线视频| 成人综合婷婷国产精品久久免费| 亚洲精品国产精品乱码不99| 日韩一区二区电影| 972aa.com艺术欧美| 日本不卡一区二区三区高清视频| 国产欧美日韩不卡免费| 日本久久电影网| 国内精品伊人久久久久影院对白| 日韩美女视频一区| 欧美大白屁股肥臀xxxxxx| 91欧美一区二区| 九九热在线视频观看这里只有精品| 国产精品久久久久四虎| 91精品国产色综合久久不卡电影| 成人性生交大片免费看中文网站| 视频在线观看91| 1024成人网色www| 精品久久国产老人久久综合| 在线免费观看一区| 成人黄色网址在线观看| 美女视频一区二区三区| 一区二区三区资源| 国产精品久久久久永久免费观看| 日韩一区二区三区在线观看| 欧美午夜不卡视频| 91啪九色porn原创视频在线观看| 国产一区二区中文字幕| 免费看日韩精品| 亚洲国产中文字幕| 一区二区三区中文免费| 国产精品久久久久影院亚瑟| 久久男人中文字幕资源站| 91麻豆精品国产91久久久资源速度 | 狂野欧美性猛交blacked| 亚洲婷婷国产精品电影人久久| 久久精品免视看| 日韩欧美国产一区二区三区| 67194成人在线观看| 欧美日韩在线播放三区| 91久久免费观看| 91蜜桃传媒精品久久久一区二区| 国产精品1区2区| 国产综合色产在线精品| 久久91精品国产91久久小草| 日av在线不卡| 男女性色大片免费观看一区二区| 午夜国产精品影院在线观看| 亚洲最快最全在线视频| 一区二区在线电影| 一区二区三区国产| 亚洲午夜三级在线| 亚洲国产精品一区二区久久恐怖片| 亚洲欧美一区二区久久| 一区二区三区不卡在线观看| 亚洲一区二区欧美日韩| 亚欧色一区w666天堂| 奇米亚洲午夜久久精品| 免费观看久久久4p| 国产毛片一区二区| 成熟亚洲日本毛茸茸凸凹| 91首页免费视频| 欧美在线制服丝袜| 欧美日韩国产免费一区二区 | 国产精品的网站| 成人欧美一区二区三区黑人麻豆 | 国产精品第一页第二页第三页| 国产精品女同一区二区三区| 亚洲男人的天堂一区二区| 亚洲福利一二三区| 理论电影国产精品| 成人av动漫网站| 在线播放一区二区三区| 精品久久久久久久久久久久久久久| 久久色在线视频| 亚洲男人的天堂在线aⅴ视频| 午夜激情综合网| 国产成a人亚洲| 91国产福利在线| 久久这里只有精品6| 综合久久国产九一剧情麻豆| 偷拍一区二区三区四区| 国产成人在线影院| 日本电影欧美片| 亚洲精品一区二区三区四区高清| 综合激情网...| 黄色小说综合网站| 在线亚洲+欧美+日本专区| 欧美精品一区二区三区视频| 亚洲免费看黄网站| 国产在线视频不卡二| 91浏览器入口在线观看| 欧美videos中文字幕| 亚洲免费毛片网站| 国产在线精品一区二区三区不卡| 色婷婷综合视频在线观看| 精品福利一区二区三区| 亚洲成人午夜电影| 成年人午夜久久久| 精品国产成人在线影院| 亚洲国产精品一区二区尤物区| 成人性生交大片免费看在线播放| 欧美精品第一页| 一区二区三区精品| 成人免费毛片aaaaa**| 欧美成人艳星乳罩| 性做久久久久久久免费看| 91在线观看美女| 久久精品亚洲乱码伦伦中文| 免费在线看成人av| 欧美群妇大交群中文字幕| 亚洲一区在线观看免费| 不卡av在线网| 国产欧美日韩精品a在线观看| 久久超碰97人人做人人爱| 91精品在线免费| 亚洲福利国产精品| 欧美亚洲免费在线一区| 一区二区日韩av| 色综合咪咪久久| 最新国产の精品合集bt伙计| 国模套图日韩精品一区二区| 欧美一区二区三区在线看| 日本不卡在线视频| 91精品国产福利在线观看| 婷婷中文字幕一区三区|