📄 nrf2401.lis
字号:
00C8 _nrf2401A_TxOn::
00C8 .dbline -1
00C8 .dbline 220
00C8 ; }
00C8 ;
00C8 ; //发送模式
00C8 ; void nrf2401A_TxOn()
00C8 ; {
00C8 .dbline 221
00C8 ; nrf2401A_RwOn();
00C8 D1DF rcall _nrf2401A_RwOn
00CA .dbline 222
00CA ; nrf2401A_WR(CH_NO_FREQ); //TxMode,Chan
00CA 04E0 ldi R16,4
00CC 99DF rcall _nrf2401A_WR
00CE .dbline 223
00CE ; nrf2401A_Run();
00CE D2DF rcall _nrf2401A_Run
00D0 .dbline -2
00D0 L21:
00D0 .dbline 0 ; func end
00D0 0895 ret
00D2 .dbend
00D2 .dbfunc e nrf2401A_Init _nrf2401A_Init fV
00D2 ; i -> R20
.even
00D2 _nrf2401A_Init::
00D2 00D0 rcall push_gset1
00D4 .dbline -1
00D4 .dbline 228
00D4 ; }
00D4 ;
00D4 ; //初始化nrf2401A
00D4 ; void nrf2401A_Init()
00D4 ; { uchar i;
00D4 .dbline 229
00D4 ; CLR(PORTC,CLK1);//
00D4 A998 cbi 0x15,1
00D6 .dbline 230
00D6 ; nrf2401A_StandBy();
00D6 C2DF rcall _nrf2401A_StandBy
00D8 .dbline 232
00D8 ; // DelayMs(10); //!!!must >3ms
00D8 ; for(i=1;i<5;i++)
00D8 41E0 ldi R20,1
00DA 04C0 rjmp L26
00DC L23:
00DC .dbline 233
00DC 08EE ldi R16,1000
00DE 13E0 ldi R17,3
00E0 00D0 rcall _delay
00E2 L24:
00E2 .dbline 232
00E2 4395 inc R20
00E4 L26:
00E4 .dbline 232
00E4 4530 cpi R20,5
00E6 D0F3 brlo L23
00E8 .dbline 234
00E8 ; delay(1000);
00E8 ; nrf2401A_Config();
00E8 C9DF rcall _nrf2401A_Config
00EA .dbline 236
00EA ;
00EA ; nrf2401A_RxOn();//接收状态
00EA E9DF rcall _nrf2401A_RxOn
00EC .dbline -2
00EC L22:
00EC 00D0 rcall pop_gset1
00EE .dbline 0 ; func end
00EE 0895 ret
00F0 .dbsym r i 20 c
00F0 .dbend
00F0 .dbfunc e nrf2401A_SetTxAddr _nrf2401A_SetTxAddr fV
.even
00F0 _nrf2401A_SetTxAddr::
00F0 .dbline -1
00F0 .dbline 242
00F0 ; }
00F0 ;
00F0 ;
00F0 ; //写Tx地址
00F0 ; void nrf2401A_SetTxAddr()
00F0 ; {
00F0 .dbline 243
00F0 ; nrf2401A_WR(TX_ADDRESS_3);
00F0 0CEC ldi R16,204
00F2 86DF rcall _nrf2401A_WR
00F4 .dbline 244
00F4 ; nrf2401A_WR(TX_ADDRESS_2);
00F4 0CEC ldi R16,204
00F6 84DF rcall _nrf2401A_WR
00F8 .dbline 245
00F8 ; nrf2401A_WR(TX_ADDRESS_1);
00F8 0CEC ldi R16,204
00FA 82DF rcall _nrf2401A_WR
00FC .dbline 246
00FC ; nrf2401A_WR(TX_ADDRESS_0);
00FC 0CEC ldi R16,204
00FE 80DF rcall _nrf2401A_WR
0100 .dbline -2
0100 L27:
0100 .dbline 0 ; func end
0100 0895 ret
0102 .dbend
0102 .dbfunc e nrf2401A_SetData _nrf2401A_SetData fV
0102 ; i -> R20
.even
0102 _nrf2401A_SetData::
0102 00D0 rcall push_gset1
0104 .dbline -1
0104 .dbline 252
0104 ;
0104 ; }
0104 ;
0104 ; //写Tx数据
0104 ; void nrf2401A_SetData()
0104 ; { uchar i;
0104 .dbline 254
0104 ;
0104 ; for (i=0;i<SIZE;i++)
0104 4427 clr R20
0106 09C0 rjmp L32
0108 L29:
0108 .dbline 255
0108 80E0 ldi R24,<_TxBuf
010A 90E0 ldi R25,>_TxBuf
010C E42F mov R30,R20
010E FF27 clr R31
0110 E80F add R30,R24
0112 F91F adc R31,R25
0114 0081 ldd R16,z+0
0116 74DF rcall _nrf2401A_WR
0118 L30:
0118 .dbline 254
0118 4395 inc R20
011A L32:
011A .dbline 254
011A 4431 cpi R20,20
011C A8F3 brlo L29
011E .dbline -2
011E L28:
011E 00D0 rcall pop_gset1
0120 .dbline 0 ; func end
0120 0895 ret
0122 .dbsym r i 20 c
0122 .dbend
0122 .dbfunc e nrf2401A_SendData _nrf2401A_SendData fV
.even
0122 _nrf2401A_SendData::
0122 .dbline -1
0122 .dbline 261
0122 ; nrf2401A_WR(TxBuf[i]);
0122 ;
0122 ; }
0122 ;
0122 ; //发送TxBuf中的数据
0122 ; void nrf2401A_SendData()
0122 ; {
0122 .dbline 262
0122 ; nrf2401A_TxOn();
0122 D2DF rcall _nrf2401A_TxOn
0124 .dbline 263
0124 ; SET(PORTD,CE);
0124 949A sbi 0x12,4
0126 .dbline 264
0126 ; nrf2401A_SetTxAddr();//写发送地址
0126 E4DF rcall _nrf2401A_SetTxAddr
0128 .dbline 265
0128 ; nrf2401A_SetData();//写数据
0128 ECDF rcall _nrf2401A_SetData
012A .dbline 266
012A ; CLR(PORTD,CE);//启动发送
012A 9498 cbi 0x12,4
012C .dbline -2
012C L33:
012C .dbline 0 ; func end
012C 0895 ret
012E .dbend
012E .dbfunc e nrf2401A_ReadData _nrf2401A_ReadData fV
012E ; i -> R20
.even
012E _nrf2401A_ReadData::
012E 00D0 rcall push_gset1
0130 .dbline -1
0130 .dbline 274
0130 ; //发送完毕后进入StandBy
0130 ;
0130 ; }
0130 ;
0130 ;
0130 ; //读出接收到的数据
0130 ; void nrf2401A_ReadData()
0130 ; {uchar i;
0130 .dbline 275
0130 ; for (i=0;i<SIZE;i++)
0130 4427 clr R20
0132 09C0 rjmp L38
0134 L35:
0134 .dbline 276
0134 .dbline 277
0134 7FDF rcall _nrf2401A_RD
0136 80E0 ldi R24,<_RxBuf
0138 90E0 ldi R25,>_RxBuf
013A E42F mov R30,R20
013C FF27 clr R31
013E E80F add R30,R24
0140 F91F adc R31,R25
0142 0083 std z+0,R16
0144 .dbline 278
0144 L36:
0144 .dbline 275
0144 4395 inc R20
0146 L38:
0146 .dbline 275
0146 4431 cpi R20,20
0148 A8F3 brlo L35
014A .dbline -2
014A L34:
014A 00D0 rcall pop_gset1
014C .dbline 0 ; func end
014C 0895 ret
014E .dbsym r i 20 c
014E .dbend
014E .dbfunc e RfRecvProc _RfRecvProc fV
014E ; i -> <dead>
.even
014E _RfRecvProc::
014E .dbline -1
014E .dbline 282
014E ; {
014E ; RxBuf[i]=nrf2401A_RD();
014E ; }
014E ;
014E ; }
014E ; void RfRecvProc()
014E ; {uchar i;
014E .dbline 284
014E ;
014E ; if ((PINC&(1<<DR1))==0) return;//DR=1时表示数据接收对而且Crc正确
014E 9A99 sbic 0x13,2
0150 01C0 rjmp L40
0152 .dbline 284
0152 01C0 rjmp L39
0154 L40:
0154 .dbline 286
0154 ; //已经接收到数据
0154 ; nrf2401A_ReadData();//读出...
0154 ECDF rcall _nrf2401A_ReadData
0156 .dbline -2
0156 L39:
0156 .dbline 0 ; func end
0156 0895 ret
0158 .dbsym l i 1 c
0158 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\programme\nrf2401\nrf2401.c
0000 _RxBuf::
0000 .blkb 20
0014 .dbsym e RxBuf _RxBuf A[20:20]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -