📄 rf_blink_led.lss
字号:
// WORD myAddr
// The 16-bit short address which is used by this node. Must together with the PAN ID form a
// unique 32-bit identifier to avoid addressing conflicts. Normally, in a 802.15.4 network, the
// short address will be given to associated nodes by the PAN coordinator.
//-------------------------------------------------------------------------------------------------------
void basicRfInit(BASIC_RF_RX_INFO *pRRI, UINT8 channel, WORD panId, WORD myAddr) {
284: ff 92 push r15
286: 0f 93 push r16
288: 1f 93 push r17
28a: cf 93 push r28
28c: df 93 push r29
28e: cd b7 in r28, 0x3d ; 61
290: de b7 in r29, 0x3e ; 62
292: 24 97 sbiw r28, 0x04 ; 4
294: 0f b6 in r0, 0x3f ; 63
296: f8 94 cli
298: de bf out 0x3e, r29 ; 62
29a: 0f be out 0x3f, r0 ; 63
29c: cd bf out 0x3d, r28 ; 61
29e: 8c 01 movw r16, r24
2a0: f6 2e mov r15, r22
2a2: 4b 83 std Y+3, r20 ; 0x03
2a4: 5c 83 std Y+4, r21 ; 0x04
2a6: 29 83 std Y+1, r18 ; 0x01
2a8: 3a 83 std Y+2, r19 ; 0x02
UINT8 n;
// Make sure that the voltage regulator is on, and that the reset pin is inactive
SET_VREG_ACTIVE();
2aa: c5 9a sbi 0x18, 5 ; 24
halWait(1000);
2ac: 88 ee ldi r24, 0xE8 ; 232
2ae: 93 e0 ldi r25, 0x03 ; 3
2b0: 0e 94 12 01 call 0x224
SET_RESET_ACTIVE();
2b4: c6 98 cbi 0x18, 6 ; 24
halWait(1);
2b6: 81 e0 ldi r24, 0x01 ; 1
2b8: 90 e0 ldi r25, 0x00 ; 0
2ba: 0e 94 12 01 call 0x224
SET_RESET_INACTIVE();
2be: c6 9a sbi 0x18, 6 ; 24
halWait(5);
2c0: 85 e0 ldi r24, 0x05 ; 5
2c2: 90 e0 ldi r25, 0x00 ; 0
2c4: 0e 94 12 01 call 0x224
// Initialize the FIFOP external interrupt
FIFOP_INT_INIT();
2c8: 80 91 6a 00 lds r24, 0x006A
2cc: 83 60 ori r24, 0x03 ; 3
2ce: 80 93 6a 00 sts 0x006A, r24
2d2: 81 e0 ldi r24, 0x01 ; 1
2d4: 88 bf out 0x38, r24 ; 56
ENABLE_FIFOP_INT();
2d6: 89 b7 in r24, 0x39 ; 57
2d8: 81 60 ori r24, 0x01 ; 1
2da: 89 bf out 0x39, r24 ; 57
// Turn off all interrupts while we're accessing the CC2420 registers
DISABLE_GLOBAL_INT();
2dc: f8 94 cli
// Register modifications
FASTSPI_STROBE(CC2420_SXOSCON);
2de: c0 98 cbi 0x18, 0 ; 24
2e0: 81 e0 ldi r24, 0x01 ; 1
2e2: 8f b9 out 0x0f, r24 ; 15
2e4: 77 9b sbis 0x0e, 7 ; 14
2e6: fe cf rjmp .-4 ; 0x2e4
2e8: c0 9a sbi 0x18, 0 ; 24
FASTSPI_SETREG(CC2420_MDMCTRL0, 0x0AF2); // Turn on automatic packet acknowledgment
2ea: c0 98 cbi 0x18, 0 ; 24
2ec: 81 e1 ldi r24, 0x11 ; 17
2ee: 8f b9 out 0x0f, r24 ; 15
2f0: 77 9b sbis 0x0e, 7 ; 14
2f2: fe cf rjmp .-4 ; 0x2f0
2f4: 8a e0 ldi r24, 0x0A ; 10
2f6: 8f b9 out 0x0f, r24 ; 15
2f8: 77 9b sbis 0x0e, 7 ; 14
2fa: fe cf rjmp .-4 ; 0x2f8
2fc: 82 ef ldi r24, 0xF2 ; 242
2fe: 8f b9 out 0x0f, r24 ; 15
300: 77 9b sbis 0x0e, 7 ; 14
302: fe cf rjmp .-4 ; 0x300
304: c0 9a sbi 0x18, 0 ; 24
FASTSPI_SETREG(CC2420_MDMCTRL1, 0x0500); // Set the correlation threshold = 20
306: c0 98 cbi 0x18, 0 ; 24
308: 82 e1 ldi r24, 0x12 ; 18
30a: 8f b9 out 0x0f, r24 ; 15
30c: 77 9b sbis 0x0e, 7 ; 14
30e: fe cf rjmp .-4 ; 0x30c
310: 85 e0 ldi r24, 0x05 ; 5
312: 8f b9 out 0x0f, r24 ; 15
314: 77 9b sbis 0x0e, 7 ; 14
316: fe cf rjmp .-4 ; 0x314
318: 1f b8 out 0x0f, r1 ; 15
31a: 77 9b sbis 0x0e, 7 ; 14
31c: fe cf rjmp .-4 ; 0x31a
31e: c0 9a sbi 0x18, 0 ; 24
FASTSPI_SETREG(CC2420_IOCFG0, 0x007F); // Set the FIFOP threshold to maximum
320: c0 98 cbi 0x18, 0 ; 24
322: 8c e1 ldi r24, 0x1C ; 28
324: 8f b9 out 0x0f, r24 ; 15
326: 77 9b sbis 0x0e, 7 ; 14
328: fe cf rjmp .-4 ; 0x326
32a: 1f b8 out 0x0f, r1 ; 15
32c: 77 9b sbis 0x0e, 7 ; 14
32e: fe cf rjmp .-4 ; 0x32c
330: 8f e7 ldi r24, 0x7F ; 127
332: 8f b9 out 0x0f, r24 ; 15
334: 77 9b sbis 0x0e, 7 ; 14
336: fe cf rjmp .-4 ; 0x334
338: c0 9a sbi 0x18, 0 ; 24
FASTSPI_SETREG(CC2420_SECCTRL0, 0x01C4); // Turn off "Security enable"
33a: c0 98 cbi 0x18, 0 ; 24
33c: 89 e1 ldi r24, 0x19 ; 25
33e: 8f b9 out 0x0f, r24 ; 15
340: 77 9b sbis 0x0e, 7 ; 14
342: fe cf rjmp .-4 ; 0x340
344: 81 e0 ldi r24, 0x01 ; 1
346: 8f b9 out 0x0f, r24 ; 15
348: 77 9b sbis 0x0e, 7 ; 14
34a: fe cf rjmp .-4 ; 0x348
34c: 84 ec ldi r24, 0xC4 ; 196
34e: 8f b9 out 0x0f, r24 ; 15
350: 77 9b sbis 0x0e, 7 ; 14
352: fe cf rjmp .-4 ; 0x350
354: c0 9a sbi 0x18, 0 ; 24
// Set the RF channel
halRfSetChannel(channel);
356: 8f 2d mov r24, r15
358: 0e 94 19 01 call 0x232
// Turn interrupts back on
ENABLE_GLOBAL_INT();
35c: 78 94 sei
// Set the protocol configuration
rfSettings.pRxInfo = pRRI;
35e: 10 93 fb 01 sts 0x01FB, r17
362: 00 93 fa 01 sts 0x01FA, r16
rfSettings.panId = panId;
366: 8b 81 ldd r24, Y+3 ; 0x03
368: 9c 81 ldd r25, Y+4 ; 0x04
36a: 90 93 ff 01 sts 0x01FF, r25
36e: 80 93 fe 01 sts 0x01FE, r24
rfSettings.myAddr = myAddr;
372: 89 81 ldd r24, Y+1 ; 0x01
374: 9a 81 ldd r25, Y+2 ; 0x02
376: 90 93 01 02 sts 0x0201, r25
37a: 80 93 00 02 sts 0x0200, r24
rfSettings.txSeqNumber = 0;
37e: 10 92 fc 01 sts 0x01FC, r1
rfSettings.receiveOn = FALSE;
382: 10 92 02 02 sts 0x0202, r1
// Wait for the crystal oscillator to become stable
halRfWaitForCrystalOscillator();
386: 0e 94 37 01 call 0x26e
// Write the short address and the PAN ID to the CC2420 RAM (requires that the XOSC is on and stable)
DISABLE_GLOBAL_INT();
38a: f8 94 cli
FASTSPI_WRITE_RAM_LE(&myAddr, CC2420RAM_SHORTADDR, 2, n);
38c: c0 98 cbi 0x18, 0 ; 24
38e: 8a ee ldi r24, 0xEA ; 234
390: 8f b9 out 0x0f, r24 ; 15
392: 77 9b sbis 0x0e, 7 ; 14
394: fe cf rjmp .-4 ; 0x392
396: 80 e8 ldi r24, 0x80 ; 128
398: 8f b9 out 0x0f, r24 ; 15
39a: 77 9b sbis 0x0e, 7 ; 14
39c: fe cf rjmp .-4 ; 0x39a
39e: 90 e0 ldi r25, 0x00 ; 0
3a0: 9e 01 movw r18, r28
3a2: 2f 5f subi r18, 0xFF ; 255
3a4: 3f 4f sbci r19, 0xFF ; 255
3a6: f9 01 movw r30, r18
3a8: e9 0f add r30, r25
3aa: f1 1d adc r31, r1
3ac: 80 81 ld r24, Z
3ae: 8f b9 out 0x0f, r24 ; 15
3b0: 77 9b sbis 0x0e, 7 ; 14
3b2: fe cf rjmp .-4 ; 0x3b0
3b4: 9f 5f subi r25, 0xFF ; 255
3b6: 92 30 cpi r25, 0x02 ; 2
3b8: b0 f3 brcs .-20 ; 0x3a6
3ba: c0 9a sbi 0x18, 0 ; 24
FASTSPI_WRITE_RAM_LE(&panId, CC2420RAM_PANID, 2, n);
3bc: c0 98 cbi 0x18, 0 ; 24
3be: 88 ee ldi r24, 0xE8 ; 232
3c0: 8f b9 out 0x0f, r24 ; 15
3c2: 77 9b sbis 0x0e, 7 ; 14
3c4: fe cf rjmp .-4 ; 0x3c2
3c6: 80 e8 ldi r24, 0x80 ; 128
3c8: 8f b9 out 0x0f, r24 ; 15
3ca: 77 9b sbis 0x0e, 7 ; 14
3cc: fe cf rjmp .-4 ; 0x3ca
3ce: 90 e0 ldi r25, 0x00 ; 0
3d0: 9e 01 movw r18, r28
3d2: 2d 5f subi r18, 0xFD ; 253
3d4: 3f 4f sbci r19, 0xFF ; 255
3d6: f9 01 movw r30, r18
3d8: e9 0f add r30, r25
3da: f1 1d adc r31, r1
3dc: 80 81 ld r24, Z
3de: 8f b9 out 0x0f, r24 ; 15
3e0: 77 9b sbis 0x0e, 7 ; 14
3e2: fe cf rjmp .-4 ; 0x3e0
3e4: 9f 5f subi r25, 0xFF ; 255
3e6: 92 30 cpi r25, 0x02 ; 2
3e8: b0 f3 brcs .-20 ; 0x3d6
3ea: c0 9a sbi 0x18, 0 ; 24
ENABLE_GLOBAL_INT();
3ec: 78 94 sei
3ee: 24 96 adiw r28, 0x04 ; 4
3f0: 0f b6 in r0, 0x3f ; 63
3f2: f8 94 cli
3f4: de bf out 0x3e, r29 ; 62
3f6: 0f be out 0x3f, r0 ; 63
3f8: cd bf out 0x3d, r28 ; 61
3fa: df 91 pop r29
3fc: cf 91 pop r28
3fe: 1f 91 pop r17
400: 0f 91 pop r16
402: ff 90 pop r15
404: 08 95 ret
00000406 <basicRfSendPacket>:
406: ef 92 push r14
408: ff 92 push r15
40a: 1f 93 push r17
40c: cf 93 push r28
40e: df 93 push r29
410: cd b7 in r28, 0x3d ; 61
412: de b7 in r29, 0x3e ; 62
414: 23 97 sbiw r28, 0x03 ; 3
416: 0f b6 in r0, 0x3f ; 63
418: f8 94 cli
41a: de bf out 0x3e, r29 ; 62
41c: 0f be out 0x3f, r0 ; 63
41e: cd bf out 0x3d, r28 ; 61
420: 7c 01 movw r14, r24
422: 80 99 sbic 0x10, 0 ; 16
424: fe cf rjmp .-4 ; 0x422
426: 84 99 sbic 0x10, 4 ; 16
428: fc cf rjmp .-8 ; 0x422
42a: f8 94 cli
42c: c0 98 cbi 0x18, 0 ; 24
42e: 89 e0 ldi r24, 0x09 ; 9
430: 8f b9 out 0x0f, r24 ; 15
432: 77 9b sbis 0x0e, 7 ; 14
434: fe cf rjmp .-4 ; 0x432
436: c0 9a sbi 0x18, 0 ; 24
438: 80 91 02 02 lds r24, 0x0202
43c: 88 23 and r24, r24
43e: 31 f4 brne .+12 ; 0x44c
440: c0 98 cbi 0x18, 0 ; 24
442: 83 e0 ldi r24, 0x03 ; 3
444: 8f b9 out 0x0f, r24 ; 15
446: 77 9b sbis 0x0e, 7 ; 14
448: fe cf rjmp .-4 ; 0x446
44a: c0 9a sbi 0x18, 0 ; 24
44c: c0 98 cbi 0x18, 0 ; 24
44e: 1f b8 out 0x0f, r1 ; 15
450: 77 9b sbis 0x0e, 7 ; 14
452: fe cf rjmp .-4 ; 0x450
454: 1f b1 in r17, 0x0f ; 15
456: c0 9a sbi 0x18, 0 ; 24
458: 11 ff sbrs r17, 1
45a: f8 cf rjmp .-16 ; 0x44c
45c: c0 98 cbi 0x18, 0 ; 24
45e: 85 e0 ldi r24, 0x05 ; 5
460: 8f b9 out 0x0f, r24 ; 15
462: 77 9b sbis 0x0e, 7 ; 14
464: fe cf rjmp .-4 ; 0x462
466: c0 9a sbi 0x18, 0 ; 24
468: c0 98 cbi 0x18, 0 ; 24
46a: 1f b8 out 0x0f, r1 ; 15
46c: 77 9b sbis 0x0e, 7 ; 14
46e: fe cf rjmp .-4 ; 0x46c
470: 1f b1 in r17, 0x0f ; 15
472: c0 9a sbi 0x18, 0 ; 24
474: 84 e6 ldi r24, 0x64 ; 100
476: 90 e0 ldi r25, 0x00 ; 0
478: 0e 94 12 01 call 0x224
47c: 13 ff sbrs r17, 3
47e: ee cf rjmp .-36 ; 0x45c
480: f7 01 movw r30, r14
482: 84 81 ldd r24, Z+4 ; 0x04
484: 85 5f subi r24, 0xF5 ; 245
486: 89 83 std Y+1, r24 ; 0x01
488: c0 98 cbi 0x18, 0 ; 24
48a: 8e e3 ldi r24, 0x3E ; 62
48c: 8f b9 out 0x0f, r24 ; 15
48e: 77 9b sbis 0x0e, 7 ; 14
490: fe cf rjmp .-4 ; 0x48e
492: 90 e0 ldi r25, 0x00 ; 0
494: 9e 01 movw r18, r28
496: 2f 5f subi r18, 0xFF ; 255
498: 3f 4f sbci r19, 0xFF ; 255
49a: f9 01 movw r30, r18
49c: e9 0f add r30, r25
49e: f1 1d adc r31, r1
4a0: 80 81 ld r24, Z
4a2: 8f b9 out 0x0f, r24 ; 15
4a4: 77 9b sbis 0x0e, 7 ; 14
4a6: fe cf rjmp .-4 ; 0x4a4
4a8: 9f 5f subi r25, 0xFF ; 255
4aa: b9 f3 breq .-18 ; 0x49a
4ac: c0 9a sbi 0x18, 0 ; 24
4ae: f7 01 movw r30, r14
4b0: 87 81 ldd r24, Z+7 ; 0x07
4b2: 88 23 and r24, r24
4b4: 19 f0 breq .+6 ; 0x4bc
4b6: 81 e6 ldi r24, 0x61 ; 97
4b8: 98 e8 ldi r25, 0x88 ; 136
4ba: 02 c0 rjmp .+4 ; 0x4c0
4bc: 81 e4 ldi r24, 0x41 ; 65
4be: 98 e8 ldi r25, 0x88 ; 136
4c0: 8a 83 std Y+2, r24 ; 0x02
4c2: 9b 83 std Y+3, r25 ; 0x03
4c4: c0 98 cbi 0x18, 0 ; 24
4c6: 8e e3 ldi r24, 0x3E ; 62
4c8: 8f b9 out 0x0f, r24 ; 15
4ca: 77 9b sbis 0x0e, 7 ; 14
4cc: fe cf rjmp .-4 ; 0x4ca
4ce: 90 e0 ldi r25, 0x00 ; 0
4d0: 9e 01 movw r18, r28
4d2: 2e 5f subi r18, 0xFE ; 254
4d4: 3f 4f sbci r19, 0xFF ; 255
4d6: f9 01 movw r30, r18
4d8: e9 0f add r30, r25
4da: f1 1d adc r31, r1
4dc: 80 81 ld r24, Z
4de: 8f b9 out 0x0f, r24 ; 15
4e0: 77 9b sbis 0x0e, 7 ; 14
4e2: fe cf rjmp .-4 ; 0x4e0
4e4: 9f 5f subi r25, 0xFF ; 255
4e6: 92 30 cpi r25, 0x02 ; 2
4e8: b0 f3 brcs .-20 ; 0x4d6
4ea: c0 9a sbi 0x18, 0 ; 24
4ec: c0 98 cbi 0x18, 0 ; 24
4ee: 8e e3 ldi r24, 0x3E ; 62
4f0: 8f b9 out 0x0f, r24 ; 15
4f2: 77 9b sbis 0x0e, 7 ; 14
4f4: fe cf rjmp .-4 ; 0x4f2
4f6: 90 e0 ldi r25, 0x00 ; 0
4f8: e9 2f mov r30, r25
4fa: ff 27 eor r31, r31
4fc: e4 50 subi r30, 0x04 ; 4
4fe: fe 4f sbci r31, 0xFE ; 254
500: 80 81 ld r24, Z
502: 8f b9 out 0x0f, r24 ; 15
504: 77 9b sbis 0x0e, 7 ; 14
506: fe cf rjmp .-4 ; 0x504
508: 9f 5f subi r25, 0xFF ; 255
50a: b1 f3 breq .-20 ; 0x4f8
50c: c0 9a sbi 0x18, 0 ; 24
50e: c0 98 cbi 0x18, 0 ; 24
510: 8e e3 ldi r24, 0x3E ; 62
512: 8f b9 out 0x0f, r24 ; 15
514: 77 9b sbis 0x0e, 7 ; 14
516: fe cf rjmp .-4 ; 0x514
518: 90 e0 ldi r25, 0x00 ; 0
51a: e9 2f mov r30, r25
51c: ff 27 eor r31, r31
51e: e2 50 subi r30, 0x02 ; 2
520: fe 4f sbci r31, 0xFE ; 254
522: 80 81 ld r24, Z
524: 8f b9 out 0x0f, r24 ; 15
526: 77 9b sbis 0x0e, 7 ; 14
528: fe cf rjmp .-4 ; 0x526
52a: 9f 5f subi r25, 0xFF ; 255
52c: 92 30 cpi r25, 0x02 ; 2
52e: a8 f3 brcs .-22 ; 0x51a
530: c0 9a sbi 0x18, 0 ; 24
532: c0 98 cbi 0x18, 0 ; 24
534: 8e e3 ldi r24, 0x3E ; 62
536: 8f b9 out 0x0f, r24 ; 15
538: 77 9b sbis 0x0e, 7 ; 14
53a: fe cf rjmp .-4 ; 0x538
53c: 90 e0 ldi r25, 0x00 ; 0
53e: f7 01 movw r30, r14
540: e9 0f add r30, r25
542: f1 1d adc r31, r1
544: 82 81 ldd r24, Z+2 ; 0x02
546: 8f b9 out 0x0f, r24 ; 15
548: 77 9b sbis 0x0e, 7 ; 14
54a: fe cf rjmp .-4 ; 0x548
54c: 9f 5f subi r25, 0xFF ; 255
54e: 92 30 cpi r25, 0x02 ; 2
550: b0 f3 brcs .-20 ; 0x53e
552: c0 9a sbi 0x18, 0 ; 24
554: c0 98 cbi 0x18, 0 ; 24
556: 8e e3 ldi r24, 0x3E ; 62
558: 8f b9 out 0x0f, r24 ; 15
55a: 77 9b sbis 0x0e, 7 ; 14
55c: fe cf rjmp .-4 ; 0x55a
55e: 90 e0 ldi r25, 0x00 ; 0
560: e9 2f mov r30, r25
562: ff 27 eor r31, r31
564: e0 50 subi r30, 0x00 ; 0
566: fe 4f sbci r31, 0xFE ; 254
568: 80 81 ld r24, Z
56a: 8f b9 out 0x0f, r24 ; 15
56c: 77 9b sbis 0x0e, 7 ; 14
56e: fe cf rjmp .-4 ; 0x56c
570: 9f 5f subi r25, 0xFF ; 255
572: 92 30 cpi r25, 0x02 ; 2
574: a8 f3 brcs .-22 ; 0x560
576: c0 9a sbi 0x18, 0 ; 24
578: c0 98 cbi 0x18, 0 ; 24
57a: 8e e3 ldi r24, 0x3E ; 62
57c: 8f b9 out 0x0f, r24 ; 15
57e: 77 9b sbis 0x0e, 7 ; 14
580: fe cf rjmp .-4 ; 0x57e
582: 40 e0 ldi r20, 0x00 ; 0
584: f7 01 movw r30, r14
586: 84 81 ldd r24, Z+4 ; 0x04
588: 18 16 cp r1, r24
58a: a4 f4 brge .+40 ; 0x5b4
58c: f7 01 movw r30, r14
58e: a5 81 ldd r26, Z+5 ; 0x05
590: b6 81 ldd r27, Z+6 ; 0x06
592: a4 0f add r26, r20
594: b1 1d adc r27, r1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -