📄 lianjie.lst
字号:
185 C04B RJMP 0x01D1
186 9543 INC R20
187 304A CPI R20,0xA
188 F358 BCS 0x0174
(0412) }
(0413) break;
189 C045 RJMP 0x01CF
(0414) case R_RX_PAYLOAD:
(0415) len = Register[3] & 0x3f;
18A 9160 00EB LDS R22,Register+3
18C 736F ANDI R22,0x3F
(0416) // uart_TxChar(len);
(0417) // rxpt = 0;
(0418) // handlept = 0;
(0419) FlashFlag = FLASHLIMIT;
18D E082 LDI R24,2
18E 9380 006C STS FlashFlag,R24
(0420) /* for ( i=0; i<len; i++ ) {
(0421) uart_TxChar(spi_rxbuf[i]);
(0422) }
(0423) */
(0424) // rxpt = len;
(0425)
(0426) handle();
190 D116 RCALL _handle
(0427) NoDataCount = 0;
191 2422 CLR R2
192 2433 CLR R3
193 9230 006A STS NoDataCount+1,R3
195 9220 0069 STS NoDataCount,R2
(0428) break;
197 C037 RJMP 0x01CF
(0429) case R_TX_ADDRESS:
(0430) len = (Register[2] >> 4) & 0x07;
198 9160 00EA LDS R22,Register+2
19A 9562 SWAP R22
19B 706F ANDI R22,0xF
19C 7067 ANDI R22,7
(0431) for ( i=0; i<len; i++ ) {
19D 2744 CLR R20
19E C013 RJMP 0x01B2
(0432) if ( tx_addr[i] != spi_rxbuf[i] ) return 1;
19F E781 LDI R24,0x71
1A0 E090 LDI R25,0
1A1 2FE4 MOV R30,R20
1A2 27FF CLR R31
1A3 0FE8 ADD R30,R24
1A4 1FF9 ADC R31,R25
1A5 8020 LDD R2,Z+0
1A6 EC82 LDI R24,0xC2
1A7 E090 LDI R25,0
1A8 2FE4 MOV R30,R20
1A9 27FF CLR R31
1AA 0FE8 ADD R30,R24
1AB 1FF9 ADC R31,R25
1AC 8030 LDD R3,Z+0
1AD 1432 CP R3,R2
1AE F011 BEQ 0x01B1
1AF E001 LDI R16,1
1B0 C020 RJMP 0x01D1
1B1 9543 INC R20
1B2 1746 CP R20,R22
1B3 F358 BCS 0x019F
(0433) }
(0434)
(0435) break;
1B4 C01A RJMP 0x01CF
(0436) case R_TX_PAYLOAD:
(0437) len = Register[4] & 0x3F;
1B5 9160 00EC LDS R22,0x00EC
1B7 736F ANDI R22,0x3F
(0438) for ( i=0; i<len; i++ ) {
1B8 2744 CLR R20
1B9 C013 RJMP 0x01CD
(0439) if ( tx_buf[i] != spi_rxbuf[i] ) return 1;
1BA E781 LDI R24,0x71
1BB E090 LDI R25,0
1BC 2FE4 MOV R30,R20
1BD 27FF CLR R31
1BE 0FE8 ADD R30,R24
1BF 1FF9 ADC R31,R25
1C0 8020 LDD R2,Z+0
1C1 EA82 LDI R24,0xA2
1C2 E090 LDI R25,0
1C3 2FE4 MOV R30,R20
1C4 27FF CLR R31
1C5 0FE8 ADD R30,R24
1C6 1FF9 ADC R31,R25
1C7 8030 LDD R3,Z+0
1C8 1432 CP R3,R2
1C9 F011 BEQ 0x01CC
1CA E001 LDI R16,1
1CB C005 RJMP 0x01D1
1CC 9543 INC R20
1CD 1746 CP R20,R22
1CE F358 BCS 0x01BA
(0440) }
(0441)
(0442) break;
(0443) }
(0444)
(0445) nrF905_RX_Mode();
1CF DF7F RCALL _nrF905_RX_Mode
(0446) return 0;
1D0 2700 CLR R16
1D1 C387 RJMP pop_xgsetF00C
_SPI_R_CONFIG:
i --> R20
1D2 934A ST R20,-Y
(0447) }
(0448)
(0449) /////////////////////////////////////////////////////////////
(0450) BYTE SPI_R_CONFIG()
(0451) {
(0452) BYTE i;
(0453)
(0454) spi_rxpt = 0;
1D3 2422 CLR R2
1D4 9220 0070 STS nrf905_JinJu.c:spi_rxpt,R2
(0455) spi_handlept = 0;
1D6 9220 006F STS spi_handlept,R2
(0456) nrF905_Standby_Mode();
1D8 DF6F RCALL _nrF905_Standby_Mode
(0457) CSN_L;
1D9 98C2 CBI 0x18,2
(0458) SPI_Char(0,R_CONFIG);
1DA E120 LDI R18,0x10
1DB 2700 CLR R16
1DC DF54 RCALL _SPI_Char
(0459) for ( i=0; i<10; i++ ) SPI_Char(1,0xff);
1DD 2744 CLR R20
1DE C004 RJMP 0x01E3
1DF EF2F LDI R18,0xFF
1E0 E001 LDI R16,1
1E1 DF4F RCALL _SPI_Char
1E2 9543 INC R20
1E3 304A CPI R20,0xA
1E4 F3D0 BCS 0x01DF
(0460)
(0461) CSN_H;
1E5 9AC2 SBI 0x18,2
(0462) return spi_handle(R_CONFIG);
1E6 E100 LDI R16,0x10
1E7 DF6E RCALL _spi_handle
1E8 9149 LD R20,Y+
1E9 9508 RET
_SPI_W_CONFIG:
i --> R20
1EA 934A ST R20,-Y
(0463) }
(0464)
(0465) /////////////////////////////////////////////////////////////
(0466) void SPI_W_CONFIG()
(0467) {
(0468) BYTE i;
(0469)
(0470) nrF905_Standby_Mode();
1EB DF5C RCALL _nrF905_Standby_Mode
(0471) ms(10);
1EC E00A LDI R16,0xA
1ED E010 LDI R17,0
1EE DEB1 RCALL _ms
1EF C017 RJMP 0x0207
(0472) while(1) {
(0473) CSN_L;
1F0 98C2 CBI 0x18,2
(0474) SPI_Char(0,W_CONFIG);
1F1 2722 CLR R18
1F2 2700 CLR R16
1F3 DF3D RCALL _SPI_Char
(0475) for ( i=0; i<10; i++ ) {
1F4 2744 CLR R20
1F5 C00A RJMP 0x0200
(0476) SPI_Char(0,Register[i]);
1F6 EE88 LDI R24,0xE8
1F7 E090 LDI R25,0
1F8 2FE4 MOV R30,R20
1F9 27FF CLR R31
1FA 0FE8 ADD R30,R24
1FB 1FF9 ADC R31,R25
1FC 8120 LDD R18,Z+0
1FD 2700 CLR R16
1FE DF32 RCALL _SPI_Char
1FF 9543 INC R20
200 304A CPI R20,0xA
201 F3A0 BCS 0x01F6
(0477) }
(0478)
(0479) CSN_H;
202 9AC2 SBI 0x18,2
(0480)
(0481) if ( !SPI_R_CONFIG() ) break;
203 DFCE RCALL _SPI_R_CONFIG
204 2300 TST R16
205 F409 BNE 0x0207
206 C001 RJMP 0x0208
207 CFE8 RJMP 0x01F0
(0482) }
(0483)
(0484) nrF905_RX_Mode();
208 DF46 RCALL _nrF905_RX_Mode
209 9149 LD R20,Y+
20A 9508 RET
_SPI_R_TX_PAYLOAD:
len --> R20
i --> R10
20B 92AA ST R10,-Y
20C 934A ST R20,-Y
(0485) }
(0486)
(0487) /////////////////////////////////////////////////////////////
(0488) BYTE SPI_R_TX_PAYLOAD()
(0489) {
(0490) BYTE i,len;
(0491)
(0492) spi_rxpt = 0;
20D 2422 CLR R2
20E 9220 0070 STS nrf905_JinJu.c:spi_rxpt,R2
(0493) spi_handlept = 0;
210 9220 006F STS spi_handlept,R2
(0494) nrF905_Standby_Mode();
212 DF35 RCALL _nrF905_Standby_Mode
(0495) CSN_L;
213 98C2 CBI 0x18,2
(0496) SPI_Char(0,R_TX_PAYLOAD);
214 E221 LDI R18,0x21
215 2700 CLR R16
216 DF1A RCALL _SPI_Char
(0497) len = Register[4] & 0x3F;
217 9140 00EC LDS R20,0x00EC
219 734F ANDI R20,0x3F
(0498) for ( i=0; i<len; i++ ) SPI_Char(1,0xff);
21A 24AA CLR R10
21B C004 RJMP 0x0220
21C EF2F LDI R18,0xFF
21D E001 LDI R16,1
21E DF12 RCALL _SPI_Char
21F 94A3 INC R10
220 16A4 CP R10,R20
221 F3D0 BCS 0x021C
(0499)
(0500) CSN_H;
222 9AC2 SBI 0x18,2
(0501) return spi_handle(R_TX_PAYLOAD);
223 E201 LDI R16,0x21
224 DF31 RCALL _spi_handle
225 9149 LD R20,Y+
226 90A9 LD R10,Y+
227 9508 RET
_SPI_W_TX_PAYLOAD:
len --> R20
i --> R20
228 934A ST R20,-Y
(0502) }
(0503)
(0504) /////////////////////////////////////////////////////////////
(0505) void SPI_W_TX_PAYLOAD()
(0506) {
(0507) BYTE i,len;
(0508)
(0509) CSN_L;
229 98C2 CBI 0x18,2
(0510) SPI_Char(0,W_TX_PAYLOAD);
22A E220 LDI R18,0x20
22B 2700 CLR R16
22C DF04 RCALL _SPI_Char
(0511)
(0512) len = Register[4] & 0x3F;
22D 9140 00EC LDS R20,0x00EC
22F 734F ANDI R20,0x3F
(0513) for ( i=0; i<16; i++ ) {
230 2744 CLR R20
231 C00A RJMP 0x023C
(0514) SPI_Char(0,tx_buf[i]);
232 EA82 LDI R24,0xA2
233 E090 LDI R25,0
234 2FE4 MOV R30,R20
235 27FF CLR R31
236 0FE8 ADD R30,R24
237 1FF9 ADC R31,R25
238 8120 LDD R18,Z+0
239 2700 CLR R16
23A DEF6 RCALL _SPI_Char
23B 9543 INC R20
23C 3140 CPI R20,0x10
23D F3A0 BCS 0x0232
(0515) //uart_TxChar(tx_buf[i]);
(0516) }
(0517) CSN_H;
23E 9AC2 SBI 0x18,2
23F 9149 LD R20,Y+
240 9508 RET
_SPI_R_TX_ADDRESS:
len --> R20
i --> R10
241 92AA ST R10,-Y
242 934A ST R20,-Y
(0518) }
(0519)
(0520) /////////////////////////////////////////////////////////////
(0521) BYTE SPI_R_TX_ADDRESS()
(0522) {
(0523) BYTE i,len;
(0524)
(0525) spi_rxpt = 0;
243 2422 CLR R2
244 9220 0070 STS nrf905_JinJu.c:spi_rxpt,R2
(0526) spi_handlept = 0;
246 9220 006F STS spi_handlept,R2
(0527) nrF905_Standby_Mode();
248 DEFF RCALL _nrF905_Standby_Mode
(0528) CSN_L;
249 98C2 CBI 0x18,2
(0529) SPI_Char(0,R_TX_ADDRESS);
24A E223 LDI R18,0x23
24B 2700 CLR R16
24C DEE4 RCALL _SPI_Char
(0530) len = (Register[2] >> 4) & 0x07;
24D 9140 00EA LDS R20,Register+2
24F 9542 SWAP R20
250 704F ANDI R20,0xF
251 7047 ANDI R20,7
(0531) for ( i=0; i<len; i++ ) SPI_Char(1,0xff);
252 24AA CLR R10
253 C004 RJMP 0x0258
254 EF2F LDI R18,0xFF
255 E001 LDI R16,1
256 DEDA RCALL _SPI_Char
257 94A3 INC R10
258 16A4 CP R10,R20
259 F3D0 BCS 0x0254
(0532)
(0533) CSN_H;
25A 9AC2 SBI 0x18,2
(0534) return spi_handle(R_TX_ADDRESS);
25B E203 LDI R16,0x23
25C DEF9 RCALL _spi_handle
25D 9149 LD R20,Y+
25E 90A9 LD R10,Y+
25F 9508 RET
_SPI_W_TX_ADDRESS:
len --> R20
i --> R10
260 92AA ST R10,-Y
261 934A ST R20,-Y
(0535) }
(0536)
(0537) /////////////////////////////////////////////////////////////
(0538) void SPI_W_TX_ADDRESS()
(0539) {
(0540) BYTE i,len;
(0541)
(0542) CSN_L;
262 98C2 CBI 0x18,2
(0543) SPI_Char(0,W_TX_ADDRESS);
263 E222 LDI R18,0x22
264 2700 CLR R16
265 DECB RCALL _SPI_Char
(0544) len = (Register[2] >> 4) & 0x07;
266 9140 00EA LDS R20,Register+2
268 9542 SWAP R20
269 704F ANDI R20,0xF
26A 7047 ANDI R20,7
(0545) for ( i=0; i<len; i++ ) {
26B 24AA CLR R10
26C C00A RJMP 0x0277
(0546) SPI_Char(0,tx_addr[i]);
26D EC82 LDI R24,0xC2
26E E090 LDI R25,0
26F 2DEA MOV R30,R10
270 27FF CLR R31
271 0FE8 ADD R30,R24
272 1FF9 ADC R31,R25
273 8120 LDD R18,Z+0
274 2700 CLR R16
275 DEBB RCALL _SPI_Char
276 94A3 INC R10
277 16A4 CP R10,R20
278 F3A0 BCS 0x026D
(0547) }
(0548) CSN_H;
279 9AC2 SBI 0x18,2
27A 9149 LD R20,Y+
27B 90A9 LD R10,Y+
27C 9508 RET
_SPI_R_RX_PAYLOAD:
i --> Y,+1
len --> R20
27D 934A ST R20,-Y
(0549) }
(0550)
(0551) /////////////////////////////////////////////////////////////
(0552) BYTE SPI_R_RX_PAYLOAD()
(0553) {
(0554) BYTE i,len;
(0555)
(0556) spi_rxpt = 0;
27E 2422 CLR R2
27F 9220 0070 STS nrf905_JinJu.c:spi_rxpt,R2
(0557) spi_handlept = 0;
281 9220 006F STS spi_handlept,R2
(0558) TRX_CE_L;
283 9896 CBI 0x12,6
(0559) // nrF905_Standby_Mode();
(0560) CSN_L;
284 98C2 CBI 0x18,2
(0561) SPI_Char(0,R_RX_PAYLOAD);
285 E224 LDI R18,0x24
286 2700 CLR R16
287 DEA9 RCALL _SPI_Char
(0562) len = Register[3] & 0x3f;
288 9140 00EB LDS R20,Register+3
28A 734F ANDI R20,0x3F
28B C003 RJMP 0x028F
(0563) while(DR) {
(0564) SPI_Char(1,0xff);
28C EF2F LDI R18,0xFF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -