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

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

?? lpnonstreaming.asm

?? CYRF6936 zigbee模塊設計的全部資料
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;                  handler.
;
;                  After calling RadioStartReceive NO CALLS can be made to the
;                  configuration access routines until the receive operation is
;                  terminated with a call to RadioEndReceive or RadioAbort.
;                  Until one of those calls is made to end the receive operation
;                  the only other calls supported are RadioGetReceiveState and
;                  RadioGetRssi.
;
; 'C' Call:        void RadioStartReceive(void);
;                  (A call to RadioSetPtr must have been made prior to the
;                  call to RadioStartReceive.)
;
; Assembly Call:   A: Unused
;                  X: Unused
;
; Assembly Return: A: Undefined
;                  X: Undefined
;
_RadioStartReceive::
 RadioStartReceive::
                   MOV     [RadioWipPtr], [RadioPtr]
                   MOV     [RadioWipLen], [RadioLen]
                   MOV     [RadioState], RADIO_RX
                   MOV     [RadioBytesRead], 0
                   
                   MOV     A, RX_CTRL_ADR
                   MOV     X, (RX_GO | RXC_IRQ | RXE_IRQ)
                   CALL    RadioWrite
                   
                   MOV     [RadioRssiShadow], 0
                   MOV     A, RSSI_ADR                 ; Clear the RSSI.
                   JMP     RadioRead
                    
.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioGetReceiveState:
;                  Returns the state of the current receive operation.
;                  This call should be made after starting a receive
;                  operation with the RadioStartReceive function.
;
;                  Although the bits in the state register in the hardware clear
;                  automatically, we make them sticky until the RadioEndReceive.
;
; 'C' Call:        RADIO_STATE RadioGetReceiveState(void);
;
; Assembly Call:   A: Unused
;                  X: Unused
;
; Assembly Return: A: State
;                  X: Undefined
;
_RadioGetReceiveState::
 RadioGetReceiveState::
                   TST     REG[LP_IRQ_Data_ADDR], LP_IRQ_MASK ; Anything going on?
                   JZ      RGRSDone                    ;  No, nothing to do.
RadioGetReceiveStateIsr:
                   MOV     A, RX_IRQ_STATUS_ADR
                   CALL    RadioReadStatusDebounced
                   AND     A, (RXBERR_IRQ | RXE_IRQ | RXC_IRQ)
                   OR      [RadioState], A             ;  bits, save them for furure

                   TST     [RadioState], ( RXBERR_IRQ | RXE_IRQ )   ; If overflow, set the
                   JZ      RGRSDone                                    ; completion bit to force
                   OR      [RadioState], ( RXC_IRQ | RXE_IRQ )      ;  the end of packet.

RGRSDone:          MOV     A, [RadioState]             ;  State calls and return them.
                   RET                    
    
.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioEndReceive: Completes a transmit operation.
;
; 'C' Call:        RADIO_LENGTH RadioEndReceive(void);
;
; Assembly Call:   A: Unused
;                  X: Unused
;
; Assembly Return: A: length of packet
;                  X: Undefined
;
_RadioEndReceive::
 RadioEndReceive:: MOV     A, RX_COUNT_ADR             ; Get the count.
                   CALL    RadioRead
                   MOV     [RadioTemp3], A
                   
                   TST     [RadioState], RXE_IRQ       ; If we had a buffer error...
                   JZ      .1                           

                   MOV     A, 0x10                     ; ...burp full FIFO load.
                   MOV     [RadioTemp3], RADIO_ABORT_SUCCESS
.1:                MOV     X, RX_BUFFER_ADR
                   SWAP    A, X
                   CALL    RadioFileReadWip
                   
RadioRxCleanup:    MOV     A, [RadioXactConfig]        ; Abort by writing the FRC_END_STATE
                   OR      A, FRC_END_STATE            ;  bit in the XACT_CFG register.
                   MOV     X, XACT_CFG_ADR             ; We don't touch the current end state.
                   CALL    RadioWriteSwapped
                   
.abortLoop:        MOV     A, XACT_CFG_ADR             ; Wait for the FRC_END_STATE
                   CALL    RadioRead                   ;  bit in the XACT_CFG register
                   AND     A, FRC_END_STATE            ;  to cleart indicating the force has
                   JNZ     .abortLoop                  ;  completed.

                   MOV     A, [RadioTemp3]             ; Return the count.

                   JMP     RadioDone

.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioGetRssi:    Returns the receiver signal strength indicator.
;
; 'C' Call:        RADIO_RSSI RadioGetRssi(void);
;
; Assembly Call:   A: Unused
;                  X: Unused
;
; Assembly Return: A: Rssi
;                  X: Undefined
;
_RadioGetRssi::
 RadioGetRssi::
                   MOV     A, RSSI_ADR
                   CALL    RadioRead
                   OR      [RadioRssiShadow], A
                   RET

.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioAbort:      Aborts a transmit or receive operation.
;
; 'C' Call:        void RadioAbort(void);
;
; Assembly Call:   A: Unused
;                  X: Unused
;
; Assembly Return: A: Undefined
;                  X: Undefined
;
_RadioAbort::
 RadioAbort::      TST     [RadioState], RADIO_RX      ; This Abort handling is RX specific.
                   JZ      .Done
;
; From here to .Abort is CDT3940 work-around. (Work-around ticket is CDT4056.) Force End State
;  should not be used to abort a receive if a SOP has already happened.
;                   
                   MOV     X, ABORT_EN                 ; Disrupt any pending receive by 
                   MOV     A, RX_ABORT_ADR             ; enabling abort
                   CALL    RadioWrite

                   MOV     X, 40                       ; After we've used the dig-loop to
.1:                                                    ;  disable the receiver we need to 
                                                       ;  give the pipe a while to settle
                                                       ; Read the RSSI register a few times
                   DEC     X                           ;  to update the SOP.
                   JNZ     .1
                   
                   CALL    RadioGetRssi
                   
                   TST     [RadioRssiShadow], 0x80     ; Has the RSSI SOP bit been set?
                   JNZ     .2                          ; No SOP yet, so normal force end state.
                   CALL    RadioRxCleanup
.Done:             MOV     A, RADIO_ABORT_SUCCESS
                   JMP     .AbortExit

.2:                CALL    RadioGetReceiveState
                   AND     A, RXC_IRQ
                   JZ      .2
                   
                   CALL    RadioEndReceive
.AbortExit:        PUSH    A
                   MOV     X, 0x00                     ; Disable abort
                   MOV     A, RX_ABORT_ADR
                   CALL    RadioWrite
                   POP     A
                   RET

.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioGetReceiveStatus:
;                  Returns the receiver status register.
;
; 'C' Call:        RADIO_RX_STATUS RadioGetReceiveStatus(void);
;
; Assembly Call:   A: Unused
;                  X: Unused
;
; Assembly Return: A: Status
;                  X: Undefined
;
_RadioGetReceiveStatus::
 RadioGetReceiveStatus::
                   MOV     A, RX_STATUS_ADR
                   JMP     RadioRead

.endsection
.section
;--------------------------------------------------------------------------------
;
; RadioInterrupt:  Manages the radio in an ISR or polling loop.
;
;                  For interrupt based systems RadioInterrupt can be called from
;                  the GPIO interrupt. This function does nothing if the IRQ is
;                  not asserted thereby making it easy to share the IRQ with
;                  other GPIO interrupts.
;
;                  Using this function in an IRQ can eliminate latency caused by
;                  calling RadioGetTransmitState and/or RadioGetReceveiveState
;                  in a polling loop. When using this routine to maintain the
;                  the radio, the state of that maintainance is communicated to
;                  the outside code through the global variable RadioState.
;
;                  RadioInterrupt terminates with a RETI. It is intended to be
;                  the target of a JMP instruction from the interrupt vector
;                  directly in systems where the radio does not share the GPIO
;                  interrupt, or it can be JMP'd to at the end of a ISR that
;                  manages the other GPIO interrupt sources in a system.
;
;                  Because RadioInterrupt is intended to be JMP'd to from the
;                  interrupt vector it leaves the registers unaffected.
;
; RadioPoll:       Has the same function as RadioInterrupt but causes the RETI
;                  to simulate a RET by placing a copy of the flag register on
;                  the stack. This routine can be called (with a CALL or LCALL)
;                  from a polling loop or an ISR that can not JMP - ie. an ISR
;                  written in 'C'.
;
;                  Unlike RadioInterrupt, RadioPoll does not leave the registers
;                  unaffected.
;
;                  DO NOT CALL RadioPoll WITH INTERRUPTS DISABLED.
;
; 'C' Call:        void RadioInterrupt(void);
;
; Assembly Call:   A: Unused
;                  X: Unused
;
; Assembly Return: A: Untouched
;                  X: Untouched
;
_RadioPoll::
 RadioPoll::       PUSH_F_MESSY                        ; This stacks the flag shadow.
_RadioInterrupt::
 RadioInterrupt::  TST     REG[LP_IRQ_Data_ADDR], LP_IRQ_MASK ; Is the interrupt asserted?
                   JZ      .NoRadioInterrupt           ;  No, just return.

                   PUSH    A                           ; Save Regs.
                   PUSH    X
;
; RadioGetTransmitState and RadioGetReceiveState both use a set of macros defined
;  in irqmacros.inc that use a shadow value of the flags register to allow fast
;  IE (interrupt enablement) management. We need to update the shadow value here
;  because the ISR clears the real IE.
;                   
                   CLEAR_PERM_IE                       ; Clear the IE shadow.

                   TST     [RadioState], RADIO_TX
                   JZ      .NotReceiving
                   CALL    RadioGetTransmitStateIsr  
                   JMP     .RadioIsrDone                   
.NotReceiving:     TST     [RadioState], RADIO_RX
                   JZ      .RadioIsrDone
                   CALL    RadioGetReceiveStateIsr
;
; We are now leaving the ISR and need to put the shadow back to it's previous state.
;  Since we were in an ISR we know it's state was set. (Interrupts enabled.)
;                     
.RadioIsrDone:     SET_PERM_IE                         ; Set the IE shadow.

                   POP     X                           ; Restore Regs.
                   POP     A
.NoRadioInterrupt: RETI
.endsection
;
; Enable the code compressor.
;
                   ENABLE_CODE_COMPRESSION

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩视频第一区| 色综合 综合色| 97久久超碰国产精品| 欧美久久久久久久久| 国产精品美女久久久久久久| 免费精品视频最新在线| 成人av电影免费在线播放| 欧美一二三四区在线| 亚洲精品视频免费看| 韩国欧美一区二区| 在线播放/欧美激情| 亚洲人成精品久久久久| 国产成人高清在线| 日韩精品一区二区三区三区免费| 亚洲色图视频网| 国产高清精品在线| 欧美一级一级性生活免费录像| 亚洲少妇30p| 成人免费视频app| 2023国产精品自拍| 精品一区二区三区久久| 欧美精品777| 亚洲人成网站影音先锋播放| 豆国产96在线|亚洲| 2020国产精品自拍| 久久精品av麻豆的观看方式| 欧美专区在线观看一区| 亚洲欧美激情小说另类| 91一区二区在线观看| 中文字幕在线观看一区二区| 国产精选一区二区三区| 久久久蜜桃精品| 国产在线视视频有精品| 精品日本一线二线三线不卡| 免费久久精品视频| 日韩手机在线导航| 麻豆精品国产91久久久久久| 精品国产成人在线影院 | 国产一区二区久久| 欧美一级免费大片| 美女一区二区三区| 久久影院午夜片一区| 国产大陆精品国产| 成人欧美一区二区三区小说| 91伊人久久大香线蕉| 亚洲综合网站在线观看| 欧美丝袜自拍制服另类| 日韩精品成人一区二区三区| 日韩精品一区二区三区视频 | 国产精品资源在线看| 久久综合精品国产一区二区三区| 国产伦精品一区二区三区免费迷| 久久久精品人体av艺术| 成人爱爱电影网址| 亚洲精品成人悠悠色影视| 欧美日韩精品一区二区三区蜜桃 | 国产精品亚洲人在线观看| 国产片一区二区| 在线中文字幕不卡| 日韩有码一区二区三区| 国产丝袜欧美中文另类| gogo大胆日本视频一区| 性做久久久久久| 久久免费美女视频| 日本黄色一区二区| 九九精品视频在线看| 中文字幕在线不卡国产视频| 777亚洲妇女| 国产mv日韩mv欧美| 亚洲一区二区三区四区在线观看| 日韩欧美国产三级| 91日韩精品一区| 男男gaygay亚洲| 亚洲国产高清在线| 欧美一级在线视频| 色婷婷国产精品综合在线观看| 蜜桃视频在线一区| 亚洲精品你懂的| 久久久五月婷婷| 欧美日韩第一区日日骚| 成人免费看视频| 美女免费视频一区| 亚洲精品伦理在线| 日本一区二区综合亚洲| 555www色欧美视频| 一本一道波多野结衣一区二区| 久久99精品久久久久婷婷| 一区二区三区四区视频精品免费| 久久综合五月天婷婷伊人| 欧美最新大片在线看| 国产成人精品免费| 精品一区二区影视| 午夜精品久久久久久久蜜桃app| 欧美国产激情一区二区三区蜜月| 欧美高清www午色夜在线视频| 91热门视频在线观看| 国产精品综合在线视频| 青青国产91久久久久久| 亚洲一本大道在线| 亚洲精品国产a| 国产精品成人一区二区艾草| 精品国产一区二区三区av性色| 欧美日韩一区二区电影| 色老头久久综合| 99re成人精品视频| 成人av综合一区| 国产一区二区三区在线观看免费视频 | 国产精品久久久久久久岛一牛影视| 日韩欧美不卡一区| 欧美高清www午色夜在线视频| 欧美性欧美巨大黑白大战| 91麻豆成人久久精品二区三区| 成人一道本在线| 成人一区二区三区| 成人黄色在线视频| av一本久道久久综合久久鬼色| 丰满少妇在线播放bd日韩电影| 国产精品资源在线看| 国产成人在线影院| 国产成a人亚洲精| www.亚洲激情.com| 99re在线视频这里只有精品| 色综合天天性综合| 91蝌蚪porny| 欧美日韩大陆一区二区| 欧美一级高清片在线观看| 日韩一区二区免费视频| 日韩一级完整毛片| 久久久精品2019中文字幕之3| 国产日韩欧美电影| 国产精品久久三区| 亚洲一级二级在线| 日韩电影在线免费看| 久久精品久久综合| 成人综合婷婷国产精品久久 | 亚洲视频免费看| 亚洲综合丝袜美腿| 免费在线观看不卡| 国产成人免费9x9x人网站视频| 播五月开心婷婷综合| 在线免费av一区| 777午夜精品免费视频| 精品三级在线观看| 中文字幕一区二区三区四区| 亚洲国产精品一区二区www| 欧美aⅴ一区二区三区视频| 国产老女人精品毛片久久| 99久久免费国产| 欧美久久久一区| 日本一区二区免费在线观看视频| 亚洲色欲色欲www在线观看| 日日夜夜免费精品| 国产成人aaaa| 欧美精品在线视频| 久久久久久麻豆| 亚洲国产精品天堂| 国产黑丝在线一区二区三区| 91福利社在线观看| 久久精品一区二区三区不卡牛牛 | 日本一区二区三区四区| 一区二区三区不卡在线观看| 激情亚洲综合在线| 色综合久久久久综合体桃花网| 日韩亚洲欧美综合| 亚洲男人天堂av| 国产精品一区免费视频| 欧美三级电影在线观看| 欧美极品美女视频| 免费观看30秒视频久久| 91视频免费观看| 国产亚洲va综合人人澡精品| 午夜a成v人精品| 成人国产在线观看| 日韩欧美一区二区视频| 亚洲激情男女视频| 粗大黑人巨茎大战欧美成人| 日韩亚洲欧美一区| 一区二区三区成人| 99久久99久久久精品齐齐| 欧美videos大乳护士334| 亚洲激情第一区| 成人三级在线视频| 久久精品亚洲乱码伦伦中文| 日韩av中文字幕一区二区| 91福利小视频| 亚洲欧美色图小说| 不卡的av电影| 日本一区二区三区国色天香| 国内精品第一页| 日韩精品一区二区三区蜜臀| 日韩电影在线观看电影| 欧美日韩综合不卡| 五月婷婷综合在线| 欧美日韩视频在线第一区| 亚洲国产日韩综合久久精品| 91在线视频观看| 亚洲天堂精品在线观看| 99麻豆久久久国产精品免费| 国产精品麻豆欧美日韩ww| 成人黄色在线看|