?? cc2500-dongle-rx-v40.asm
字號:
CHECK_RF_REG_ERROR:
MOV A,@0XFF
RET
;**********************************************
;INPUT: ADDR 00~3F DATA0
;OUTPUT: RF_STATUS
;**********************************************
WRITE_SINGLE_BYTE:
BC PORT6,SCLK
BC PORT5,CSN
JBC PORT6,SO
JMP $-1
MOV A,@16
MOV RW_COUNT,A
JMP WRITE_SINGLE_LOOP
WRITE_COMMAND_STROBE:
BC PORT6,SCLK
BC PORT5,CSN
JBC PORT6,SO
JMP $-1
MOV A,@8
MOV RW_COUNT,A
WRITE_SINGLE_LOOP:
RLC DATA0
RLC TEMP0
BC PORT5,SI
JBC STATUS,C
BS PORT5,SI
JMP $+1
JMP $+1
BS PORT6,SCLK
JMP $+1
JMP $+1
JMP $+1
JMP $+1
BC STATUS,C
JBC PORT6,SO
BS STATUS,C
RLC RF_STATUS
BC PORT6,SCLK
DJZ RW_COUNT
JMP WRITE_SINGLE_LOOP
BS PORT5,CSN
RET
;************************************************
;WRITE THE TX FIFO
;INPUT: ADDR 3F RRX_MODE~RRX_BIG
;OUTPUT: RF_STATUS
;************************************************
WRITE_BURST_3BYTE:
MOV A,@0X40
OR ADDR,A
BC PORT6,SCLK
BC PORT5,CSN
JBC PORT6,SO
JMP $-1
MOV A,@5*8
MOV RW_COUNT,A
MOV A,@0X03
MOV PK_TX_LENGH,A
WRITE_BURST_LOOP:
RLC RRX_BIG
RLC RRX_SMALL
RLC RRX_MODE
RLC PK_TX_LENGH
RLC ADDR
BC PORT5,SI
JBC STATUS,C
BS PORT5,SI
JMP $+1
JMP $+1
JMP $+1
BS PORT6,SCLK
JMP $+1
JMP $+1
JMP $+1
JMP $+1
JMP $+1
BC STATUS,C
JBC PORT6,SO
BS STATUS,C
RLC RF_STATUS
BC PORT6,SCLK
DJZ RW_COUNT
JMP WRITE_BURST_LOOP
BS PORT5,CSN
RET
;*************************************************
;INPUT: TEMP0(ADDR 00~3F)
;OUTPUT: RF_STATUS DATA0
;*************************************************
READ_SINGLE_BYTE:
MOV A,@0X80
OR TEMP0,A
BC PORT6,SCLK
BC PORT5,CSN
JBC PORT6,SO
JMP $-1
MOV A,@16
MOV RW_COUNT,A
READ_SINGLE_LOOP:
RLC TEMP0
BC PORT5,SI
JBC STATUS,C
BS PORT5,SI
JMP $+1
JMP $+1
BS PORT6,SCLK
JMP $+1
JMP $+1
JMP $+1
JMP $+1
BC STATUS,C
JBC PORT6,SO
BS STATUS,C
RLC DATA0
RLC RF_STATUS
BC PORT6,SCLK
DJZ RW_COUNT
JMP READ_SINGLE_LOOP
BS PORT5,CSN
RET
;****************************************************
;READ THE RX FIFO
;INPUT: ADDR 00~3F
;OUTPUT: RF_STATUS RTX_MODE~RTX_R2(19BYTE) RSSI LQI
;****************************************************
READ_BURST_22BYTE:
BC FLAG,RX_FIFO_FLAG
MOV A,@0X3F
MOV ADDR,A
MOV A,@0XC0
OR ADDR,A
BC PORT6,SCLK
BC PORT5,CSN
JBC PORT6,SO
JMP $-1
;MOV A,DATA0
;MOV A,@0X0F ;23*8
DEAL_LENGH:
MOV A,@8*2 ;23*8
MOV RW_COUNT,A
READ_BURST_LOOP:
RLC ADDR
BC PORT5,SI
JBC STATUS,C
BS PORT5,SI
JMP $+1
JMP $+1
BS PORT6,SCLK
JMP $+1
JMP $+1
JMP $+1
JMP $+1
BC STATUS,C
JBC PORT6,SO
BS STATUS,C
RLC LQI
RLC RSSI
RLC RTX_R2
RLC RTX_L2
RLC RTX_R1
RLC RTX_L1
RLC RTX_SQUARE
RLC RTX_CROSS
RLC RTX_CIRCLE
RLC RTX_TRIANGLE
RLC RTX_DOWN
RLC RTX_UP
RLC RTX_LEFT
RLC RTX_RIGHT
RLC RTX_LY
RLC RTX_LX
RLC RTX_RY
RLC RTX_RX
RLC RTX_KEY2
RLC RTX_KEY1
RLC RTX_MODE
RLC PK_RX_LENGH
RLC RF_STATUS
BC PORT6,SCLK
DJZ RW_COUNT
JMP READ_BURST_LOOP
JBC FLAG,RX_FIFO_FLAG
MOV A,@0XFF
JBC FLAG,RX_FIFO_FLAG
JMP READ_BURST_22BYTE_END
MOV A,RSSI
XOR A,@0X0F
JBS STATUS,Z
JMP READ_BURST_22BYTE_END_1
MOV A,LQI
XOR A,@0X13
JBS STATUS,Z
JMP READ_BURST_22BYTE_END_1
BS FLAG,RX_FIFO_FLAG
MOV A,@21*8
MOV RW_COUNT,A
JMP READ_BURST_LOOP
READ_BURST_22BYTE_END_1:
MOV A,@0X00
READ_BURST_22BYTE_END:
BS PORT5,CSN
RET
randm:
mov a,rand_h
mov rand,a
mov a,rand_h
mov rand1,a
rlc rand
mov a,rand
xor rand1,a
rlc rand
rlc rand
mov a,rand
xor rand1,a
mov a,rand_l
mov rand,a
swap rand
mov a,rand1
xor rand,a
rlc rand
rlc rand_l
rlc rand_h
ret
ORG 0X300
CONFIG_TABLE:
TBL
RETL 0X07 ;IOCFG2 GDO2 CRC OK
RETL 0X2E ;IOCFG1 GDO1 3-STATE
RETL 0X06 ;IOCFG0 send finish
RETL 0X09 ;FIFOTHR
RETL 0X22 ;SYNC1
RETL 0X00 ;SYNC0
RETL 0X13 ;RECEIVE PKTLEN
RETL 0X0C ;4 ;PKTCTRL1
RETL 0X45 ;PKTCTRL0
RETL 0X00 ;ADDR
RETL 0X00 ;CHANNEL
RETL 0X0C ;FSCTRL1
RETL 0X00 ;FSCTRL0
RETL 0X5D ;FREQ2
RETL 0X93 ;FREQ1
RETL 0XB1 ;FREQ0
RETL 0X0E ;MDMCFG4
RETL 0X3b ;MDMCFG3
RETL 0X73 ;MDMCFG2
RETL 0XC2 ;MDMCFG1
RETL 0XF8 ;MDMCFG0
RETL 0X00 ;DEVIATN
RETL 0X07 ;MCSM2
RETL 0X30 ;MCSM1
RETL 0X18 ;38 ;MCSM0
RETL 0X1D ;FOCCFG
RETL 0X1C ;BSCFG
RETL 0XC7 ;AGCCTRL2
RETL 0X40 ;AGCCTRL1
RETL 0XB2 ;AGCCTRL0
RETL 0X87 ;WOREVT1
RETL 0X6B ;WOREVT0
RETL 0XF8 ;WORCTRL
RETL 0XB6 ;FREND1
RETL 0X10 ;FREND0
RETL 0XEA ;FSCAL3
RETL 0X0A ;FSCAL2
RETL 0X00 ;FSCAL1
RETL 0X19 ;FSCAL0 ;0x26
;************************************************
CH_TABLE:
TBL
RETL 0X00
RETL 0X01
RETL 0X02
RETL 0X03
RETL 0X04
RETL 0X05
RETL 0X06
RETL 0X07
RETL 0X08
RETL 0X09
RETL 0X0A
RETL 0X0B
RETL 0X0C
RETL 0X0D
RETL 0X0E
RETL 0X0F
RETL 0X10
RETL 0X11
RETL 0X12
RETL 0X13
RETL 0X14
RETL 0X15
RETL 0X16
RETL 0X17
RETL 0X18
RETL 0X19
RETL 0X1A
RETL 0X1B
RETL 0X1C
RETL 0X1D
RETL 0X1E
RETL 0X1F
RETL 0X20
RETL 0X21
RETL 0X22
RETL 0X23
RETL 0X24
RETL 0X25
RETL 0X26
RETL 0X27
RETL 0X28
RETL 0X29
RETL 0X2A
RETL 0X2B
RETL 0X2C
RETL 0X2D
RETL 0X2E
RETL 0X2F
RETL 0X30
RETL 0X31
RETL 0X32
RETL 0X33
RETL 0X34
RETL 0X35
RETL 0X36
RETL 0X37
RETL 0X38
RETL 0X39
RETL 0X3A
RETL 0X3B
RETL 0X3C
RETL 0X3D
RETL 0X3E
RETL 0X3F
RETL 0X40
RETL 0X41
RETL 0X42
RETL 0X43
RETL 0X44
RETL 0X45
RETL 0X46
RETL 0X47
RETL 0X48
RETL 0X49
RETL 0X4A
RETL 0X4B
RETL 0X4C
RETL 0X4D
RETL 0X4E
RETL 0X4F
RETL 0X50
RETL 0X51
RETL 0X52
RETL 0X53
RETL 0X54
RETL 0X55
RETL 0X56
RETL 0X57
RETL 0X58
RETL 0X59
RETL 0X5A
RETL 0X5B
RETL 0X5C
RETL 0X5D
RETL 0X5E
RETL 0X5F
RETL 0X60
RETL 0X61
RETL 0X62
RETL 0X63
RETL 0X64
RETL 0X65
RETL 0X66
RETL 0X67
RETL 0X68
RETL 0X69
RETL 0X6A
RETL 0X6B
RETL 0X6C
RETL 0X6D
RETL 0X6E
RETL 0X6F
RETL 0X70
RETL 0X71
RETL 0X72
RETL 0X73
RETL 0X74
RETL 0X75
RETL 0X76
RETL 0X77
RETL 0X78
RETL 0X79
RETL 0X7a
RETL 0X7B
RETL 0X7C
RETL 0X7D
RETL 0X7E
RETL 0X7F
;*******************************************
; RESET VECTOR
;*******************************************
ORG 0XFFF
JMP RESET
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -