📄 nrf905_temperature.s
字号:
;
; /////////////////////////////////////////////////////////////
; void nrF905_Standby_Mode()
; {
.dbline 594
; PWR_UP_H;
sbi 0x18,0
.dbline 595
; TRX_CE_L;
cbi 0x12,6
.dbline -2
L208:
.dbline 0 ; func end
ret
.dbend
.dbfunc e nrF905_TX_Mode _nrF905_TX_Mode fV
.even
_nrF905_TX_Mode::
.dbline -1
.dbline 600
; }
;
; /////////////////////////////////////////////////////////////
; void nrF905_TX_Mode()
; {
.dbline 601
; PWR_UP_H;
sbi 0x18,0
.dbline 602
; TX_EN_H;
sbi 0x12,5
.dbline 603
; TRX_CE_L;
cbi 0x12,6
.dbline -2
L209:
.dbline 0 ; func end
ret
.dbend
.dbfunc e nrF905_RX_Mode _nrF905_RX_Mode fV
.even
_nrF905_RX_Mode::
.dbline -1
.dbline 608
; }
;
; /////////////////////////////////////////////////////////////
; void nrF905_RX_Mode()
; {
.dbline 609
; PWR_UP_H;
sbi 0x18,0
.dbline 610
; TX_EN_L;
cbi 0x12,5
.dbline 611
; TRX_CE_H;
sbi 0x12,6
.dbline 612
; us(650);
ldi R16,650
ldi R17,2
rcall _us
.dbline -2
L210:
.dbline 0 ; func end
ret
.dbend
.dbfunc e spi_handle _spi_handle fc
; len -> R22
; i -> R20
; cmd -> R10
.even
_spi_handle::
rcall push_xgsetF00C
mov R10,R16
.dbline -1
.dbline 617
; }
;
; /////////////////////////////////////////////////////////////
; BYTE spi_handle(BYTE cmd)
; {
.dbline 619
; BYTE len,i;
; switch(cmd) {
mov R20,R10
clr R21
cpi R20,16
ldi R30,0
cpc R21,R30
breq L215
X39:
cpi R20,16
ldi R30,0
cpc R21,R30
brge X51
rjmp L212
X51:
X40:
L244:
cpi R20,33
ldi R30,0
cpc R21,R30
brne X52
rjmp L236
X52:
X41:
cpi R20,35
ldi R30,0
cpc R21,R30
brne X53
rjmp L228
X53:
X42:
cpi R20,36
ldi R30,0
cpc R21,R30
breq L222
X43:
rjmp L212
L215:
.dbline 621
; case R_CONFIG:
; len = 10;
ldi R22,10
.dbline 622
; for ( i=0; i<10; i++ ) {
clr R20
rjmp L219
L216:
.dbline 622
.dbline 623
; if ( Register[i] != spi_rxbuf[i] ) return 1;
ldi R24,<_spi_rxbuf
ldi R25,>_spi_rxbuf
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,<_Register
ldi R25,>_Register
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R3,z+0
cp R3,R2
breq L220
X44:
.dbline 623
ldi R16,1
rjmp L211
L220:
.dbline 624
; }
L217:
.dbline 622
inc R20
L219:
.dbline 622
cpi R20,10
brlo L216
X45:
.dbline 625
; break;
rjmp L213
L222:
.dbline 627
; case R_RX_PAYLOAD:
; len = Register[3] & 0x3f;
lds R22,_Register+3
andi R22,63
.dbline 628
; rxpt = 0;
clr R2
sts _rxpt,R2
.dbline 629
; handlept = 0;
sts _handlept,R2
.dbline 630
; FlashFlag = FLASHLIMIT;
ldi R24,2
sts _FlashFlag,R24
.dbline 631
; for ( i=0; i<len; i++ ) {
clr R20
rjmp L227
L224:
.dbline 631
.dbline 632
; uart_TxChar(spi_rxbuf[i]);
ldi R24,<_spi_rxbuf
ldi R25,>_spi_rxbuf
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
rcall _uart_TxChar
.dbline 633
; }
L225:
.dbline 631
inc R20
L227:
.dbline 631
cp R20,R22
brlo L224
X46:
.dbline 635
;
; rxpt = len;
sts _rxpt,R22
.dbline 636
; handle();
rcall _handle
.dbline 637
; break;
rjmp L213
L228:
.dbline 639
; case R_TX_ADDRESS:
; len = (Register[2] >> 4) & 0x07;
lds R22,_Register+2
swap R22
andi R22,#0x0F
andi R22,7
.dbline 640
; for ( i=0; i<len; i++ ) {
clr R20
rjmp L233
L230:
.dbline 640
.dbline 641
; if ( tx_addr[i] != spi_rxbuf[i] ) return 1;
ldi R24,<_spi_rxbuf
ldi R25,>_spi_rxbuf
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,<_tx_addr
ldi R25,>_tx_addr
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R3,z+0
cp R3,R2
breq L234
X47:
.dbline 641
ldi R16,1
rjmp L211
L234:
.dbline 642
; }
L231:
.dbline 640
inc R20
L233:
.dbline 640
cp R20,R22
brlo L230
X48:
.dbline 644
;
; break;
rjmp L213
L236:
.dbline 646
; case R_TX_PAYLOAD:
; len = Register[4] & 0x3F;
lds R22,_Register+4
andi R22,63
.dbline 647
; for ( i=0; i<len; i++ ) {
clr R20
rjmp L241
L238:
.dbline 647
.dbline 648
; if ( tx_buf[i] != spi_rxbuf[i] ) return 1;
ldi R24,<_spi_rxbuf
ldi R25,>_spi_rxbuf
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,<_tx_buf
ldi R25,>_tx_buf
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R3,z+0
cp R3,R2
breq L242
X49:
.dbline 648
ldi R16,1
rjmp L211
L242:
.dbline 649
; }
L239:
.dbline 647
inc R20
L241:
.dbline 647
cp R20,R22
brlo L238
X50:
.dbline 651
;
; break;
L212:
L213:
.dbline 654
; }
;
; nrF905_RX_Mode();
rcall _nrF905_RX_Mode
.dbline 655
; return 0;
clr R16
.dbline -2
L211:
.dbline 0 ; func end
rjmp pop_xgsetF00C
.dbsym r len 22 c
.dbsym r i 20 c
.dbsym r cmd 10 c
.dbend
.dbfunc e SPI_R_CONFIG _SPI_R_CONFIG fc
; i -> R20
.even
_SPI_R_CONFIG::
st -y,R20
.dbline -1
.dbline 660
; }
;
; /////////////////////////////////////////////////////////////
; BYTE SPI_R_CONFIG()
; {
.dbline 663
; BYTE i;
;
; spi_rxpt = 0;
clr R2
sts _spi_rxpt,R2
.dbline 664
; spi_handlept = 0;
sts _spi_handlept,R2
.dbline 665
; nrF905_Standby_Mode();
rcall _nrF905_Standby_Mode
.dbline 666
; CSN_L;
cbi 0x18,2
.dbline 667
; SPI_Char(0,R_CONFIG);
ldi R18,16
clr R16
rcall _SPI_Char
.dbline 668
; for ( i=0; i<10; i++ ) SPI_Char(1,0xff);
clr R20
rjmp L249
L246:
.dbline 668
ldi R18,255
ldi R16,1
rcall _SPI_Char
L247:
.dbline 668
inc R20
L249:
.dbline 668
cpi R20,10
brlo L246
X54:
.dbline 670
;
; CSN_H;
sbi 0x18,2
.dbline 671
; return spi_handle(R_CONFIG);
ldi R16,16
rcall _spi_handle
.dbline -2
L245:
.dbline 0 ; func end
ld R20,y+
ret
.dbsym r i 20 c
.dbend
.dbfunc e SPI_W_CONFIG _SPI_W_CONFIG fV
; i -> R20
.even
_SPI_W_CONFIG::
st -y,R20
.dbline -1
.dbline 676
; }
;
; /////////////////////////////////////////////////////////////
; void SPI_W_CONFIG()
; {
.dbline 679
; BYTE i;
;
; nrF905_Standby_Mode();
rcall _nrF905_Standby_Mode
.dbline 680
; ms(10);
ldi R16,10
ldi R17,0
rcall _ms
rjmp L252
L251:
.dbline 681
; while(1) {
.dbline 682
; CSN_L;
cbi 0x18,2
.dbline 683
; SPI_Char(0,W_CONFIG);
clr R18
clr R16
rcall _SPI_Char
.dbline 684
; for ( i=0; i<10; i++ ) {
clr R20
rjmp L257
L254:
.dbline 684
.dbline 685
; SPI_Char(0,Register[i]);
ldi R24,<_Register
ldi R25,>_Register
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R18,z+0
clr R16
rcall _SPI_Char
.dbline 686
; }
L255:
.dbline 684
inc R20
L257:
.dbline 684
cpi R20,10
brlo L254
X55:
.dbline 688
;
; CSN_H;
sbi 0x18,2
.dbline 690
;
; if ( !SPI_R_CONFIG() ) break;
rcall _SPI_R_CONFIG
tst R16
brne L258
X56:
.dbline 690
rjmp L253
L258:
.dbline 691
; }
L252:
.dbline 681
rjmp L251
L253:
.dbline 693
;
; nrF905_RX_Mode();
rcall _nrF905_RX_Mode
.dbline -2
L250:
.dbline 0 ; func end
ld R20,y+
ret
.dbsym r i 20 c
.dbend
.dbfunc e SPI_R_TX_PAYLOAD _SPI_R_TX_PAYLOAD fc
; len -> R20
; i -> R10
.even
_SPI_R_TX_PAYLOAD::
st -y,R10
st -y,R20
.dbline -1
.dbline 698
; }
;
; /////////////////////////////////////////////////////////////
; BYTE SPI_R_TX_PAYLOAD()
; {
.dbline 701
; BYTE i,len;
;
; spi_rxpt = 0;
clr R2
sts _spi_rxpt,R2
.dbline 702
; spi_handlept = 0;
sts _spi_handlept,R2
.dbline 703
; nrF905_Standby_Mode();
rcall _nrF905_Standby_Mode
.dbline 704
; CSN_L;
cbi 0x18,2
.dbline 705
; SPI_Char(0,R_TX_PAYLOAD);
ldi R18,33
clr R16
rcall _SPI_Char
.dbline 706
; len = Register[4] & 0x3F;
lds R20,_Register+4
andi R20,63
.dbline 707
; for ( i=0; i<len; i++ ) SPI_Char(1,0xff);
clr R10
rjmp L265
L262:
.dbline 707
ldi R18,255
ldi R16,1
rcall _SPI_Char
L263:
.dbline 707
inc R10
L265:
.dbline 707
cp R10,R20
brlo L262
X57:
.dbline 709
;
; CSN_H;
sbi 0x18,2
.dbline 710
; return spi_handle(R_TX_PAYLOAD);
ldi R16,33
rcall _spi_handle
.dbline -2
L260:
.dbline 0 ; func end
ld R20,y+
ld R10,y+
ret
.dbsym r len 20 c
.dbsym r i 10 c
.dbend
.dbfunc e SPI_W_TX_PAYLOAD _SPI_W_TX_PAYLOAD fV
; len -> <dead>
; i -> R10
.even
_SPI_W_TX_PAYLOAD::
st -y,R10
.dbline -1
.dbline 715
; }
;
; /////////////////////////////////////////////////////////////
; void SPI_W_TX_PAYLOAD()
; {
.dbline 718
; BYTE i,len;
;
; CSN_L;
cbi 0x18,2
.dbline 719
; SPI_Char(0,W_TX_PAYLOAD);
ldi R18,32
clr R16
rcall _SPI_Char
.dbline 723
;
; // len = Register[4] & 0x3F;
;
; Register[4] = tx_len;
lds R2,_tx_len
sts _Register+4,R2
.dbline 724
; for ( i=0; i<tx_len; i++ ) {
clr R10
rjmp L271
L268:
.dbline 724
.dbline 725
; SPI_Char(0,tx_buf[i]);
ldi R24,<_tx_buf
ldi R25,>_tx_buf
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R18,z+0
clr R16
rcall _SPI_Char
.dbline 726
; uart_TxChar(tx_buf[i]);
ldi R24,<_tx_buf
ldi R25,>_tx_buf
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
rcall _uart_TxChar
.dbline 727
; }
L269:
.dbline 724
inc R10
L271:
.dbline 724
lds R2,_tx_len
cp R10,R2
brlo L268
X58:
.dbline 728
; CSN_H;
sbi 0x18,2
.dbline -2
L266:
.dbline 0 ; func end
ld R10,y+
ret
.dbsym l len 1 c
.dbsym r i 10 c
.dbend
.dbfunc e SPI_R_TX_ADDRESS _SPI_R_TX_ADDRESS fc
; len -> R20
; i -> R10
.even
_SPI_R_TX_ADDRESS::
st -y,R10
st -y,R20
.dbline -1
.dbline 733
; }
;
; /////////////////////////////////////////////////////////////
; BYTE SPI_R_TX_ADDRESS()
; {
.dbline 736
; BYTE i,len;
;
; spi_rxpt = 0;
clr R2
sts _spi_rxpt,R2
.dbline 737
; spi_handlept = 0;
sts _spi_handlept,R2
.dbline 738
; nrF905_Standby_Mode();
rcall _nrF905_Standby_Mode
.dbline 739
; CSN_L;
cbi 0x18,2
.dbline 740
; SPI_Char(0,R_TX_ADDRESS);
ldi R18,35
clr R16
rcall _SPI_Char
.dbline 741
; len = (Register[2] >> 4) & 0x07;
lds R20,_Register+2
swap R20
andi R20,#0x0F
andi R20,7
.dbline 742
; for ( i=0; i<len; i++ ) SPI_Char(1,0xff);
clr R10
rjmp L277
L274:
.dbline 742
ldi R18,255
ldi R16,1
rcall _SPI_Char
L275:
.dbline 742
inc R10
L277:
.dbline 742
cp R10,R20
brlo L274
X59:
.dbline 744
;
; CSN_H;
sbi 0x18,2
.dbline 745
; return spi_handle(R_TX_ADDRESS);
ldi R16,35
rcall _spi_handle
.dbline -2
L272:
.dbline 0 ; func end
ld R20,y+
ld R10,y+
ret
.dbsym r len 20 c
.dbsym r i 10 c
.dbend
.dbfunc e SPI_W_TX_ADDRESS _SPI_W_TX_ADDRESS fV
; len -> R20
; i -> R10
.even
_SPI_W_TX_ADDRESS::
st -y,R10
st -y,R20
.dbline -1
.dbline 750
; }
;
; /////////////////////////////////////////////////////////////
; void SPI_W_TX_ADDRESS()
; {
.dbline 753
; BYTE i,len;
;
; CSN_L;
cbi 0x18,2
.dbline 754
; SPI_Char(0,W_TX_ADDRESS);
ldi R18,34
clr R16
rcall _SPI_Char
.dbline 755
; len = (Register[2] >> 4) & 0x07;
lds R20,_Register+2
swap R20
andi R20,#0x0F
andi R20,7
.dbline 756
; for ( i=0; i<len; i++ ) {
clr R10
rjmp L283
L280:
.dbline 756
.dbline 757
; SPI_Char(0,tx_addr[i]);
ldi R24,<_tx_addr
ldi R25,>_tx_addr
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R18,z+0
clr R16
rcall _SPI_Char
.dbline 758
; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -