📄 transmit_frame.asm
字号:
;/*****************************************************************************/
;/* Transmit_Frame */
;/* Description : Make the data frame and transmit it out. */
;/* In : */
;/* Out : */
;/* local variables : */
;/*****************************************************************************/
Transmit_Frame:
jsr Make_frame
jsr Wake_up_Rx ; wake up Romeo2
end_wake_up_rx:
wait ; wait for end of tone transmission
ldhx nb_1
cphx #0000
bne end_wake_up_rx
jsr Transmit ; transmit the UHF frame
rts
; This is a constant delay for approximately 0.8 seconds, used while in
; fast transmission mode.
delay_800_ms:
lda #!24
Next_delay:
ldhx #$FFFF
jsr tempo
deca
bne Next_delay
rts
* This is a pseudo-random delay, which will last for approximately 0-100 ms.
*
Random_delay:
psha
lda TCNTL
and #%00000111
sta Random_Number
beq No_more ; No added delay if rand# %000.
cmp #%010
bls Delay_25_ms ; Delay for 25 ms if rand# %001 or %010.
bra Not_25_ms
Delay_25_ms:
ldhx #$BFFF
jsr tempo
bra No_more
Not_25_ms:
lda Random_Number
cmp #%100
bls Delay_50_ms ; Delay for 50 ms if rand# %011 or %100.
bra Not_50_ms
Delay_50_ms
ldhx #$FFFF
jsr tempo
ldhx #$7FFF
jsr tempo
bra No_more
Not_50_ms:
lda Random_Number
cmp #%101
beq Delay_75_ms ; Delay for 75 ms if rand# %101.
bra Not_75_ms
Delay_75_ms:
ldhx #$FFFF
jsr tempo
ldhx #$FFFF
jsr tempo
ldhx #$3FFF
jsr tempo
bra No_more
Not_75_ms:
Delay_100_ms: ; If rand# not found yet, delay for 100 ms.
ldhx #$FFFF
jsr tempo
ldhx #$FFFF
jsr tempo
ldhx #$FFFF
jsr tempo
bra No_more
No_more:
pula
rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -