📄 nrf905config.lis
字号:
0116 ; nrf905_SetTxAddr(); //写发送地址
0116 DADF rcall _nrf905_SetTxAddr
0118 .dbline 138
0118 ; nrf905_SetData(); //写数据
0118 E6DF rcall _nrf905_SetData
011A .dbline 139
011A ; nrf905_TxSend(); //启动发送
011A B2DF rcall _nrf905_TxSend
011C .dbline 141
011C ; // nrf905_WaitSended();//等待发送结束 有改动
011C ; DelayMs(10);
011C 0AE0 ldi R16,10
011E 25D0 rcall _DelayMs
0120 .dbline -2
0120 L27:
0120 .dbline 0 ; func end
0120 0895 ret
0122 .dbend
0122 .dbfunc e nrf905_SendAgain _nrf905_SendAgain fV
.even
0122 _nrf905_SendAgain::
0122 .dbline -1
0122 .dbline 147
0122 ;
0122 ; }
0122 ;
0122 ; //测试直接重新发送上次写入的数据
0122 ; void nrf905_SendAgain()
0122 ; {
0122 .dbline 148
0122 ; nrf905_TxOn();
0122 AADF rcall _nrf905_TxOn
0124 .dbline 149
0124 ; nrf905_TxSend();
0124 ADDF rcall _nrf905_TxSend
0126 .dbline 151
0126 ; // nrf905_WaitSended();
0126 ; DelayMs(20);
0126 04E1 ldi R16,20
0128 20D0 rcall _DelayMs
012A .dbline -2
012A L28:
012A .dbline 0 ; func end
012A 0895 ret
012C .dbend
012C .dbfunc e nrf905_ReadData _nrf905_ReadData fV
012C ; i -> R20
.even
012C _nrf905_ReadData::
012C 00D0 rcall push_gset1
012E .dbline -1
012E .dbline 156
012E ; }
012E ;
012E ; //读出接收到的数据
012E ; void nrf905_ReadData()
012E ; {
012E .dbline 159
012E ; uchar i;
012E ;
012E ; CLR(PORTB,CSN);
012E C298 cbi 0x18,2
0130 .dbline 160
0130 ; nrf905_SpiRW(RRP); //读RxPayload
0130 04E2 ldi R16,36
0132 94DF rcall _nrf905_SpiRW
0134 .dbline 161
0134 ; for (i=0;i<SIZE;i++)
0134 4427 clr R20
0136 0AC0 rjmp L33
0138 L30:
0138 .dbline 162
0138 .dbline 163
0138 0027 clr R16
013A 90DF rcall _nrf905_SpiRW
013C 80E0 ldi R24,<_RxBuf
013E 90E0 ldi R25,>_RxBuf
0140 E42F mov R30,R20
0142 FF27 clr R31
0144 E80F add R30,R24
0146 F91F adc R31,R25
0148 0083 std z+0,R16
014A .dbline 164
014A L31:
014A .dbline 161
014A 4395 inc R20
014C L33:
014C .dbline 161
014C 4032 cpi R20,32
014E A0F3 brlo L30
0150 .dbline 166
0150 ; {
0150 ; RxBuf[i]=nrf905_SpiRW(0);//read...
0150 ; }
0150 ;
0150 ; SET(PORTB,CSN);
0150 C29A sbi 0x18,2
0152 .dbline -2
0152 L29:
0152 00D0 rcall pop_gset1
0154 .dbline 0 ; func end
0154 0895 ret
0156 .dbsym r i 20 c
0156 .dbend
0156 .dbfunc e RfRecvProc _RfRecvProc fc
0156 ; i -> <dead>
.even
0156 _RfRecvProc::
0156 .dbline -1
0156 .dbline 174
0156 ;
0156 ; }
0156 ;
0156 ;
0156 ;
0156 ; //接收处理
0156 ; uchar RfRecvProc()
0156 ; {uchar i;
0156 .dbline 179
0156 ; //if((PINC&(1<<CD))==0) return 'C';
0156 ;
0156 ; // if ((PINC&(1<<AM))==0) return 'A';//一般先AM=1指示地址匹配对
0156 ;
0156 ; if ((PINC&(1<<DR))==0) return 'N';//DR=1时表示数据接收对而且Crc正确
0156 9A99 sbic 0x13,2
0158 02C0 rjmp L35
015A .dbline 179
015A 0EE4 ldi R16,78
015C 02C0 rjmp L34
015E L35:
015E .dbline 182
015E ;
015E ; //已经接收到数据
015E ; nrf905_ReadData();//读出...
015E E6DF rcall _nrf905_ReadData
0160 .dbline 183
0160 ; return 'y';
0160 09E7 ldi R16,121
0162 .dbline -2
0162 L34:
0162 .dbline 0 ; func end
0162 0895 ret
0164 .dbsym l i 1 c
0164 .dbend
0164 .dbfunc e RfSendProc _RfSendProc fV
0164 ; i -> <dead>
.even
0164 _RfSendProc::
0164 .dbline -1
0164 .dbline 200
0164 ; /* for (i=0;i<32;i++)
0164 ; { if (RxBuf[i]!=(i+i))
0164 ; return;
0164 ; }*/
0164 ;
0164 ; //数据接收正确...灯指示
0164 ; // CPL(PORTD,LED);
0164 ;
0164 ; //从机回送数据包,这样双方都能指示是否收到有效数据包
0164 ; /* #ifndef MASTER
0164 ; RfSendProc();
0164 ; #endif*/
0164 ; }
0164 ;
0164 ; //发送测试
0164 ; void RfSendProc()
0164 ; {uchar i;
0164 .dbline 203
0164 ; // for (i=0;i<32;i++)
0164 ; // TxBuf[i]=i+i;
0164 ; nrf905_SendData(); //发送测试数据
0164 D7DF rcall _nrf905_SendData
0166 .dbline 204
0166 ; nrf905_RxOn(); //重新回到接收状态
0166 92DF rcall _nrf905_RxOn
0168 .dbline -2
0168 L37:
0168 .dbline 0 ; func end
0168 0895 ret
016A .dbsym l i 1 c
016A .dbend
016A .dbfunc e DelayMs _DelayMs fV
016A ; i -> R20
016A ; ms -> R22
.even
016A _DelayMs::
016A 00D0 rcall push_gset2
016C 602F mov R22,R16
016E .dbline -1
016E .dbline 212
016E ; }
016E ;
016E ;
016E ;
016E ;
016E ;
016E ; void DelayMs(uchar ms)
016E ; {char i;
016E .dbline 213
016E ; for (i=0;i<ms;i++)
016E 4427 clr R20
0170 04C0 rjmp L42
0172 L39:
0172 .dbline 214
0172 .dbline 214
0172 08EE ldi R16,1000
0174 13E0 ldi R17,3
0176 05D0 rcall _DelayUs
0178 .dbline 215
0178 L40:
0178 .dbline 213
0178 4395 inc R20
017A L42:
017A .dbline 213
017A 4617 cp R20,R22
017C D0F3 brlo L39
017E .dbline 216
017E ; {DelayUs(1000);
017E ; }
017E ; return;
017E .dbline -2
017E L38:
017E 00D0 rcall pop_gset2
0180 .dbline 0 ; func end
0180 0895 ret
0182 .dbsym r i 20 c
0182 .dbsym r ms 22 c
0182 .dbend
0182 .dbfunc e DelayUs _DelayUs fV
0182 ; i -> R20,R21
0182 ; us -> R16,R17
.even
0182 _DelayUs::
0182 00D0 rcall push_gset1
0184 .dbline -1
0184 .dbline 220
0184 ; }
0184 ;
0184 ; void DelayUs(uint us)
0184 ; {uint i;
0184 .dbline 221
0184 ; for (i=0;i<us;i++)
0184 4427 clr R20
0186 5527 clr R21
0188 02C0 rjmp L47
018A L44:
018A .dbline 222
018A L45:
018A .dbline 221
018A 4F5F subi R20,255 ; offset = 1
018C 5F4F sbci R21,255
018E L47:
018E .dbline 221
018E 4017 cp R20,R16
0190 5107 cpc R21,R17
0192 D8F3 brlo L44
0194 .dbline -2
0194 L43:
0194 00D0 rcall pop_gset1
0196 .dbline 0 ; func end
0196 0895 ret
0198 .dbsym r i 20 i
0198 .dbsym r us 16 i
0198 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\programme\RF905\nrf905config.c
0000 _RxBuf::
0000 .blkb 32
0020 .dbsym e RxBuf _RxBuf A[32:32]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -