📄 nrf905.lis
字号:
0156 4606 cpc R4,R22
0158 5706 cpc R5,R23
015A 39F4 brne L34
015C .dbline 229
015C 80E8 ldi R24,128
015E 90E0 ldi R25,0
0160 22B2 in R2,0x12
0162 3324 clr R3
0164 2826 eor R2,R24
0166 3926 eor R3,R25
0168 22BA out 0x12,R2
016A L34:
016A .dbline 234
016A ; //if(RxBuf[7]==RX_ADDRESS_2)CPL(PORTD,LED);
016A ; //if(RxBuf[8]==RX_ADDRESS_3)CPL(PORTD,LED);
016A ; //if(RxBuf[9]==(CRC16_EN | XOF_16MHz))CPL(PORTD,LED);
016A ;
016A ; }
016A .dbline 235
016A ; SET(PORTB,CSN);
016A C49A sbi 0x18,4
016C .dbline -2
016C L12:
016C 0E940000 xcall pop_gset3
0170 .dbline 0 ; func end
0170 0895 ret
0172 .dbsym r i 10 c
0172 .dbend
0172 .dbfunc e nrf905_SetTxAddr _nrf905_SetTxAddr fV
.even
0172 _nrf905_SetTxAddr::
0172 .dbline -1
0172 .dbline 240
0172 ; }
0172 ;
0172 ; //写Tx地址
0172 ; void nrf905_SetTxAddr()
0172 ; {
0172 .dbline 241
0172 ; CLR(PORTB,CSN);
0172 C498 cbi 0x18,4
0174 .dbline 242
0174 ; nrf905_SpiRW(WTA); //写Tx地址
0174 02E2 ldi R16,34
0176 5DDF xcall _nrf905_SpiRW
0178 .dbline 243
0178 ; nrf905_SpiRW(TX_ADDRESS_0);
0178 07E8 ldi R16,135
017A 5BDF xcall _nrf905_SpiRW
017C .dbline 244
017C ; nrf905_SpiRW(TX_ADDRESS_1);
017C 05E6 ldi R16,101
017E 59DF xcall _nrf905_SpiRW
0180 .dbline 245
0180 ; nrf905_SpiRW(TX_ADDRESS_2);
0180 03E4 ldi R16,67
0182 57DF xcall _nrf905_SpiRW
0184 .dbline 246
0184 ; nrf905_SpiRW(TX_ADDRESS_3);
0184 01E2 ldi R16,33
0186 55DF xcall _nrf905_SpiRW
0188 .dbline 247
0188 ; SET(PORTB,CSN);
0188 C49A sbi 0x18,4
018A .dbline -2
018A L37:
018A .dbline 0 ; func end
018A 0895 ret
018C .dbend
018C .dbfunc e nrf905_SetData _nrf905_SetData fV
018C ; i -> R20
.even
018C _nrf905_SetData::
018C 0E940000 xcall push_gset1
0190 .dbline -1
0190 .dbline 252
0190 ; }
0190 ;
0190 ; //写Tx数据
0190 ; void nrf905_SetData()
0190 ; {uchar i;
0190 .dbline 254
0190 ;
0190 ; CLR(PORTB,CSN);
0190 C498 cbi 0x18,4
0192 .dbline 255
0192 ; nrf905_SpiRW(WTP); //写TxPayload
0192 00E2 ldi R16,32
0194 4EDF xcall _nrf905_SpiRW
0196 .dbline 256
0196 ; for (i=0;i<SIZE;i++)
0196 4427 clr R20
0198 09C0 xjmp L42
019A L39:
019A .dbline 257
019A .dbline 258
019A 80E0 ldi R24,<_TxBuf
019C 90E0 ldi R25,>_TxBuf
019E E42F mov R30,R20
01A0 FF27 clr R31
01A2 E80F add R30,R24
01A4 F91F adc R31,R25
01A6 0081 ldd R16,z+0
01A8 44DF xcall _nrf905_SpiRW
01AA .dbline 259
01AA L40:
01AA .dbline 256
01AA 4395 inc R20
01AC L42:
01AC .dbline 256
01AC 4032 cpi R20,32
01AE A8F3 brlo L39
01B0 .dbline 261
01B0 ; {
01B0 ; nrf905_SpiRW(TxBuf[i]);
01B0 ; }
01B0 ;
01B0 ; SET(PORTB,CSN);
01B0 C49A sbi 0x18,4
01B2 .dbline -2
01B2 L38:
01B2 0E940000 xcall pop_gset1
01B6 .dbline 0 ; func end
01B6 0895 ret
01B8 .dbsym r i 20 c
01B8 .dbend
01B8 .dbfunc e nrf905_WaitSended _nrf905_WaitSended fV
.even
01B8 _nrf905_WaitSended::
01B8 .dbline -1
01B8 .dbline 266
01B8 ; }
01B8 ;
01B8 ; //等待发送结束
01B8 ; void nrf905_WaitSended()
01B8 ; {
01B8 L44:
01B8 .dbline 267
01B8 L45:
01B8 .dbline 267
01B8 ; while ((PINB&(1<<DR))==0);
01B8 B39B sbis 0x16,3
01BA FECF rjmp L44
01BC .dbline -2
01BC L43:
01BC .dbline 0 ; func end
01BC 0895 ret
01BE .dbend
01BE .dbfunc e nrf905_SendData _nrf905_SendData fV
.even
01BE _nrf905_SendData::
01BE .dbline -1
01BE .dbline 272
01BE ; }
01BE ;
01BE ; //发送TxBuf中的数据
01BE ; void nrf905_SendData()
01BE ; {
01BE .dbline 273
01BE ; nrf905_TxOn();//切换到发送模式
01BE 49DF xcall _nrf905_TxOn
01C0 .dbline 275
01C0 ;
01C0 ; nrf905_SetTxAddr();//写发送地址
01C0 D8DF xcall _nrf905_SetTxAddr
01C2 .dbline 276
01C2 ; nrf905_SetData();//写数据
01C2 E4DF xcall _nrf905_SetData
01C4 .dbline 277
01C4 ; nrf905_TxSend();//启动发送
01C4 4ADF xcall _nrf905_TxSend
01C6 .dbline 278
01C6 ; nrf905_WaitSended();//等待发送结束
01C6 F8DF xcall _nrf905_WaitSended
01C8 .dbline -2
01C8 L47:
01C8 .dbline 0 ; func end
01C8 0895 ret
01CA .dbend
01CA .dbfunc e nrf905_SendAgain _nrf905_SendAgain fV
.even
01CA _nrf905_SendAgain::
01CA .dbline -1
01CA .dbline 284
01CA ;
01CA ; }
01CA ;
01CA ; //测试直接重新发送上次写入的数据
01CA ; void nrf905_SendAgain()
01CA ; {
01CA .dbline 285
01CA ; nrf905_TxOn();
01CA 43DF xcall _nrf905_TxOn
01CC .dbline 286
01CC ; nrf905_TxSend();
01CC 46DF xcall _nrf905_TxSend
01CE .dbline 287
01CE ; nrf905_WaitSended();
01CE F4DF xcall _nrf905_WaitSended
01D0 .dbline -2
01D0 L48:
01D0 .dbline 0 ; func end
01D0 0895 ret
01D2 .dbend
01D2 .dbfunc e nrf905_ReadData _nrf905_ReadData fV
01D2 ; i -> R20
.even
01D2 _nrf905_ReadData::
01D2 0E940000 xcall push_gset1
01D6 .dbline -1
01D6 .dbline 293
01D6 ;
01D6 ; }
01D6 ;
01D6 ; //读出接收到的数据
01D6 ; void nrf905_ReadData()
01D6 ; {
01D6 .dbline 296
01D6 ; uchar i;
01D6 ;
01D6 ; CLR(PORTB,CSN);
01D6 C498 cbi 0x18,4
01D8 .dbline 297
01D8 ; nrf905_SpiRW(RRP); //读RxPayload
01D8 04E2 ldi R16,36
01DA 2BDF xcall _nrf905_SpiRW
01DC .dbline 298
01DC ; for (i=0;i<SIZE;i++)
01DC 4427 clr R20
01DE 0AC0 xjmp L53
01E0 L50:
01E0 .dbline 299
01E0 .dbline 300
01E0 0027 clr R16
01E2 27DF xcall _nrf905_SpiRW
01E4 80E0 ldi R24,<_RxBuf
01E6 90E0 ldi R25,>_RxBuf
01E8 E42F mov R30,R20
01EA FF27 clr R31
01EC E80F add R30,R24
01EE F91F adc R31,R25
01F0 0083 std z+0,R16
01F2 .dbline 301
01F2 L51:
01F2 .dbline 298
01F2 4395 inc R20
01F4 L53:
01F4 .dbline 298
01F4 4032 cpi R20,32
01F6 A0F3 brlo L50
01F8 .dbline 303
01F8 ; {
01F8 ; RxBuf[i]=nrf905_SpiRW(0);//read...
01F8 ; }
01F8 ;
01F8 ; SET(PORTB,CSN);
01F8 C49A sbi 0x18,4
01FA .dbline -2
01FA L49:
01FA 0E940000 xcall pop_gset1
01FE .dbline 0 ; func end
01FE 0895 ret
0200 .dbsym r i 20 c
0200 .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\DOCUME~1\charon\MYDOCU~1\AVR\NRF905\nrf905.C
0000 _RxBuf::
0000 .blkb 100
0064 .dbsym e RxBuf _RxBuf A[100:100]c
0064 _TxBuf::
0064 .blkb 100
00C8 .dbsym e TxBuf _TxBuf A[100:100]c
00C8 _key:
00C8 .blkb 1
00C9 .dbfile C:\DOCUME~1\charon\MYDOCU~1\AVR\NRF905/config.h
00C9 .dbsym s key _key c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -