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

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

?? lpnonstreaming.asm

?? CYRF6936 zigbee模塊設計的全部資料
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;--------------------------------------------------------------------------
;
;  Filename:    lpnonstreaming.asm
;
;  Description: User functions to access the LP radio. This file contains
;               the functions and support for the actual operational
;               routines that actually perform transmit and receive
;               operations. These are the functions that change between the
;               streaming and non-streaming versions of the driver.
;
;               This is the non-streaming version of the LP radio driver
;
;--------------------------------------------------------------------------
; WirelessUSB LP Radio Driver Version 1.0
; $Revision: 3 $
;--------------------------------------------------------------------------
;
; Copyright 2005-2006, Cypress Semiconductor Corporation.
;
; This software is owned by Cypress Semiconductor Corporation (Cypress)
; and is protected by and subject to worldwide patent protection (United
; States and foreign), United States copyright laws and international
; treaty provisions. Cypress hereby grants to licensee a personal,
; non-exclusive, non-transferable license to copy, use, modify, create
; derivative works of, and compile the Cypress Source Code and derivative
; works for the sole purpose of creating custom software in support of
; licensee product to be used only in conjunction with a Cypress integrated
; circuit as specified in the applicable agreement. Any reproduction,
; modification, translation, compilation, or representation of this
; software except as specified above is prohibited without the express
; written permission of Cypress.
;
; Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
; WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
; Cypress reserves the right to make changes without further notice to the
; materials described herein. Cypress does not assume any liability arising
; out of the application or use of any product or circuit described herein.
; Cypress does not authorize its products for use as critical components in
; life-support systems where a malfunction or failure may reasonably be
; expected to result in significant injury to the user. The inclusion of
; Cypress' product in a life-support systems application implies that the
; manufacturer assumes all risk of such use and in doing so indemnifies
; Cypress against all charges.
;
; Use may be limited by and subject to the applicable Cypress software
; license agreement.
;
;--------------------------------------------------------------------------

;--------------------------------------------------------------------------;
;                                                                          ;
;                      I N C L U D E   F I L E S                           ;
;                                                                          ;
;--------------------------------------------------------------------------;

                   INCLUDE "lpradio.inc"
                   INCLUDE "spim_radio.inc"
                   INCLUDE "psocgpioint.inc"
                   INCLUDE "lpregs.inc"
                   INCLUDE "m8c.inc"
                   INCLUDE "irqmacros.inc"

;--------------------------------------------------------------------------;
;                                                                          ;
;                            V A R I A B L E S                             ;
;                                                                          ;
;--------------------------------------------------------------------------;

                   AREA    bss

RadioBytesRead::   BLK     1                           ; Can we fold this into one of the other variables?
RadioRssiShadow:   BLK     1                           ; Can we fold this into one of the other variables?

;--------------------------------------------------------------------------;
;                                                                          ;
;                                 C O D E                                  ;
;                                                                          ;
;--------------------------------------------------------------------------;

                   AREA    UserModules (ROM, REL)
                   
;
; Disable the code compressor.
;
                   DISABLE_CODE_COMPRESSION

;--------------------------------------------------------------------------;
;                                                                          ;
;                 T R A N S M I T   a n d   R E C E I V E                  ;
;                                                                          ;
;--------------------------------------------------------------------------;

.section
;--------------------------------------------------------------------------------
;
; RadioStartTransmit:
;                  Start the transmission of a packet. The location of the
;                  packet buffer to transmit must have previously been set
;                  with a call to RadioSetPtr.
;
;                  After starting the transmission of a packet with this call,
;                  the state of the transmit operation should be check by
;                  calling RadioGetTransmitState. When RadioGetTransmitState
;                  indicates that the transmission has completed a call
;                  should be made to RadioEndTransmit.
;
;                  After calling RadioStartTransmit NO CALLS can be made to the
;                  configuration access routines until the transmit operation is
;                  terminated with a call to RadioEndTransmit or RadioAbort.
;                  Until one of those calls is made to end the transmit operation
;                  the only other call supported is RadioGetTransmitState. 
;
; 'C' Call:        void RadioStartTransmit(BYTE retryCount, RADIO_LENGTH length);
;                  (A call to RadioSetPtr must have been made prior to the
;                  call to RadioStartTransmit.)
;
; Assembly Call:   A: retry count
;                  X: packet length
;
; Assembly Return: A: Undefined
;                  X: Undefined
;
_RadioStartTransmit::
 RadioStartTransmit::
                   MOV     [RadioRetryCount], A        ; Save count
                   MOV     [RadioPacketLength], X      ;  and length.

RadioRestartTransmit:
                   MOV     [RadioState], RADIO_TX
                   MOV     [RadioTemp2], ( TX_GO | TX_CLR | TXC_IRQ | TXE_IRQ)             ;  the current value.
;
; The write that starts the transmit and the movement of the data into the buffer
;  must happen atomically. There can be no interrupt caused delay between them.
;                   
.ShortPacket:      PUSH_F_MESSY
                   PUSH_PERM_IE_THROUGH_A
                   CLEAR_PERM_IE
                   CLEAR_TEMP_IE
                   MOV     [RadioWipPtr], <RadioTemp1  ; Burst write the 
                   MOV     A, TX_LENGTH_ADR            ;  to start the TX.
                   MOV     X, 2
                   MOV     [RadioWipLen], X
                   CALL    RadioBurstWriteWip          ; Write length and TX control as burst.

                   MOV     X, [RadioPacketLength]
                   MOV     A, TX_BUFFER_ADR
                   CALL    RadioFileWrite              ; Burst the data in

                   POP_PERM_IE_THROUGH_A
                   POP_F_RET                           ; Restore the IRQ enablement state.
                    
.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioGetTransmitState:
;                  Returns the state of the current transmit operation.
;                  This call should be made after starting a transmit
;                  operation with the RadioStartTransmit function.
;
;                  Although the bits in the status register in the hardware clear
;                  automatically, we make them sticky until the RadioEndReceive.
;
; 'C' Call:        RADIO_STATE RadioGetTransmitState(void);
;
; Assembly Call:   A: Unused
;                  X: Unused
;
; Assembly Return: A: State
;                  X: Undefined
;
_RadioGetTransmitState::
 RadioGetTransmitState::
;
; Poll the IRQ line to see if there is something to do.
;
                   TST     REG[LP_IRQ_Data_ADDR], LP_IRQ_MASK ; Has the interrupt asserted?
                   JZ      RGTSDone                    ;  No, just return the state.
;
; Something interesting is happening at the IRQ, find out what.
;
RadioGetTransmitStateIsr:
                   MOV     A, TX_IRQ_STATUS_ADR
                   CALL    RadioReadStatusDebounced
                   AND     A, (TXE_IRQ | TXC_IRQ)
                   OR      [RadioState], A
                   CMP     A, TXC_IRQ
                   JZ      RGTSDone
;
; Workaround for CDT3847. When this issue occurs, the IRQ is asserted while both TXC and TXE are not set. 
;  Read the RX_IRQ_STATUS register will clear up the IRQ. We don't need to do the read if there is just a
;  simple error, but no harm.
;
                   MOV     A, RX_IRQ_STATUS_ADR         ; Clear the RX IRQ.
                   CALL    RadioRead                   
                   OR      [RadioState], (TXE_IRQ | TXC_IRQ)
;
; Maybe retry the failed transmit.
;
                   MOV     A, [RadioRetryCount]
                   JZ      RGTSDone                   
                   DEC     [RadioRetryCount]            ; Decrement the TX retry count
                   CALL    RadioRestartTransmit         ; Try again.

RGTSDone:          MOV     A, [RadioState]
                   RET

.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioEndTransmit:Completes a transmit operation.
;
; 'C' Call:        void RadioEndTransmit(void);
;
; Assembly Call:   A: Unused
;                  X: Unused
;
; Assembly Return: A: Undefined
;                  X: Undefined
;
_RadioEndTransmit::
 RadioEndTransmit::

 RadioEndOperation:

RadioDone:         MOV     [RadioState], RADIO_IDLE    ; Clear our status.

                   RET
.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioBlockingTransmit:
;                  Transmit a packet. Block execution until it completes.
;                  This function attempts to transmit a packet. The address
;                  of the packet buffer should have previously been set with
;                  a call to RadioSetPtr.
;
;                  This routine gives the user very little control - probably
;                  less than most applications will require. This function is
;                  primarily intended for very simple applications that have
;                  no use for a time-out.
;
; 'C' Call:        RADIO_STATE RadioBlockingTransmit(BYTE retryCount, RADIO_LENGTH length);
;                  (A call to RadioSetPtr must have been made prior to the
;                  call to RadioBlockingTransmit.)
;
; Assembly Call:   A: retryCount
;                  X: length
;                  RadioPtr: Address of packet buffer
;                  
; Assembly Return: A: RADIO_STATE
;                  X: Undefined
;
_RadioBlockingTransmit::
 RadioBlockingTransmit::
                   CALL    RadioStartTransmit
                   
.WaitLoop:         CALL    RadioGetTransmitState
                   MOV     [RadioTemp2], A
                   TST     [RadioTemp2], TXC_IRQ | TXE_IRQ
                   JZ      .WaitLoop

                   CALL    RadioEndTransmit

                   MOV     A, [RadioTemp2]
                   RET                    

.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioStartReceive:
;                  Start the reception of a packet. The location and length of
;                  the packet buffer to receive the data into must have
;                  previously been set with a call to RadioSetPtr and
;                  RadioSetLength.
;
;                  After starting the reception of a packet with this call,
;                  the state of the receive operation should be checked by
;                  calling RadioGetReceiveState. When RadioGetReceiveState
;                  indicates that the transmission has completed a call
;                  should be made to RadioEndReceive.
;
;                  The receive is started by hitting the "RX_GO" bit. All the
;                  interesting interrupt enables are set and RadioGetReceiveState
;                  can be called in a polling loop in systems that do not use
;                  interrupts, or can be called directly in an interrupt

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品午夜视频| 国产欧美视频一区二区| 国产偷国产偷精品高清尤物| 亚洲激情网站免费观看| 国产精品一二三四区| 欧美三级在线播放| 亚洲免费电影在线| 成人精品高清在线| 久久久久国产精品麻豆ai换脸 | 奇米影视一区二区三区| 99久久国产综合色|国产精品| 337p粉嫩大胆色噜噜噜噜亚洲 | 中文字幕免费一区| 午夜精品爽啪视频| 91免费小视频| 91麻豆精品国产无毒不卡在线观看| 日韩不卡免费视频| 欧美色图一区二区三区| 日韩一区日韩二区| 91蜜桃婷婷狠狠久久综合9色| 国产亚洲一区二区在线观看| 久久成人麻豆午夜电影| 欧美一卡2卡三卡4卡5免费| 午夜精品一区在线观看| 欧美日韩国产首页| 日韩福利视频网| 91精品在线免费| 奇米一区二区三区av| 日韩欧美亚洲另类制服综合在线 | 欧美日韩精品三区| 亚洲v中文字幕| 在线不卡a资源高清| 免费成人av在线| 欧美v亚洲v综合ⅴ国产v| 精品夜夜嗨av一区二区三区| 久久综合五月天婷婷伊人| 国产乱一区二区| 国产日产精品1区| 91原创在线视频| 亚洲午夜免费电影| 777a∨成人精品桃花网| 久久99精品国产麻豆婷婷洗澡| 精品国产乱码久久| 不卡视频在线观看| 亚洲欧美日韩久久| 欧美精品一卡二卡| 国产一区欧美二区| 亚洲少妇最新在线视频| 精品视频免费看| 精品亚洲porn| 国产精品久久久久aaaa| 欧美在线一区二区| 国内不卡的二区三区中文字幕| 亚洲国产精品成人综合| 欧美四级电影在线观看| 麻豆一区二区99久久久久| 中文字幕国产一区| 欧美另类z0zxhd电影| 国产精品1区2区| 亚洲福利视频三区| 国产日产欧美一区二区视频| 欧美亚洲国产怡红院影院| 久久精品国产久精国产爱| 中文欧美字幕免费| 欧美日韩视频不卡| jizz一区二区| 精品一二线国产| 亚洲一区精品在线| 国产亚洲一本大道中文在线| 在线免费观看日本欧美| 精品一区二区三区视频| 亚洲欧美乱综合| 久久亚洲影视婷婷| 在线成人免费观看| 色综合久久久久| 国产精品资源网站| 免费成人美女在线观看| 亚洲国产综合91精品麻豆| 国产欧美一区二区三区网站| 欧美日韩国产小视频在线观看| 成人app在线观看| 日本人妖一区二区| 亚洲午夜影视影院在线观看| 国产精品午夜久久| 欧美精品一区二区三区久久久| 欧美在线色视频| 99久久久久久| 国产99久久久国产精品| 久久99久久99精品免视看婷婷| 亚洲成人激情综合网| 亚洲欧美日韩成人高清在线一区| 久久精品这里都是精品| 欧美精品一区二区三区视频| 在线成人午夜影院| 欧美手机在线视频| 色美美综合视频| 97久久精品人人做人人爽| 懂色av一区二区在线播放| 韩国欧美国产1区| 经典三级视频一区| 免费在线观看日韩欧美| 免费成人av资源网| 无码av免费一区二区三区试看 | 亚洲色欲色欲www在线观看| 中文字幕不卡的av| 国产欧美一区二区精品婷婷| 国产日韩欧美一区二区三区乱码| 久久色在线视频| 欧美不卡在线视频| 26uuu色噜噜精品一区二区| www国产精品av| 国产欧美日韩麻豆91| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美日韩一卡二卡三卡| 欧美色图一区二区三区| 欧美日韩日本视频| 欧美一区二区在线不卡| 日韩精品一区二区在线| 欧美电影精品一区二区| 国产丝袜美腿一区二区三区| 欧美国产精品一区二区三区| 亚洲人成伊人成综合网小说| 亚洲综合小说图片| 日本伊人午夜精品| 国产久卡久卡久卡久卡视频精品| 国产高清亚洲一区| 色爱区综合激月婷婷| 欧美日韩一区二区三区免费看 | av中文一区二区三区| 91老司机福利 在线| 欧美日韩日日夜夜| 久久久综合网站| 中文字幕亚洲视频| 偷拍日韩校园综合在线| 国产毛片精品一区| 91福利小视频| 精品日韩一区二区三区 | 欧美日韩在线观看一区二区 | 亚洲影院免费观看| 极品少妇xxxx精品少妇偷拍| 成人av资源在线观看| 欧美性生活一区| 久久婷婷国产综合国色天香| 亚洲私人影院在线观看| 日韩av二区在线播放| 成人一级黄色片| 欧美日韩国产综合一区二区| 久久久久久久久久久黄色| 国产精品不卡一区| 欧美a级理论片| 色综合一个色综合| 欧美一级电影网站| 伊人婷婷欧美激情| 国产精品99久久久久| 欧美日韩在线直播| 国产精品久久久久久久久免费丝袜| 亚洲mv大片欧洲mv大片精品| 成人av在线一区二区三区| 欧美一卡二卡三卡| 一区二区在线观看免费| 国产乱码字幕精品高清av| 欧美精选一区二区| 亚洲免费资源在线播放| 国产jizzjizz一区二区| 欧美一级黄色大片| 亚洲尤物视频在线| 91免费版在线| 亚洲国产精品国自产拍av| 蜜桃av噜噜一区| 欧美日韩精品系列| 一区二区三区四区亚洲| 国产成人在线观看免费网站| 日韩一区二区视频| 亚洲国产日韩a在线播放| 成人成人成人在线视频| 欧美精品一区二区三区在线播放 | 99久久精品国产精品久久| 日韩精品一区二区三区三区免费| 亚洲国产一二三| 色呦呦日韩精品| 亚洲少妇屁股交4| 99久久99久久精品国产片果冻| 久久久久久久久久美女| 久久精品国产久精国产| 日韩女优制服丝袜电影| 日韩国产欧美视频| 亚洲女人****多毛耸耸8| 一区二区三区四区中文字幕| 国产高清精品网站| 日韩专区在线视频| 成人高清视频免费观看| 久久精品日韩一区二区三区| 韩国毛片一区二区三区| 精品国产一区二区精华| 蓝色福利精品导航| 日韩欧美国产一区二区三区| 另类小说一区二区三区| 欧美精品一区二区久久婷婷| 久久99精品国产麻豆婷婷洗澡| 欧美精品一区二区三区在线播放|