📄 main.lss
字号:
1ea: 87 81 ldd r24, Z+7 ; 0x07
1ec: 99 27 eor r25, r25
1ee: 87 fd sbrc r24, 7
1f0: 90 95 com r25
1f2: 9f 93 push r25
1f4: 8f 93 push r24
1f6: 83 e5 ldi r24, 0x53 ; 83
1f8: 91 e0 ldi r25, 0x01 ; 1
1fa: 9f 93 push r25
1fc: 8f 93 push r24
1fe: 0e 94 15 3b call 0x762a
break;
202: 0f 90 pop r0
204: 0f 90 pop r0
206: 0f 90 pop r0
208: 0f 90 pop r0
20a: 44 c1 rjmp .+648 ; 0x494
case MAC_STATE_ENERGY_SCAN_FINISHED:
mlmeScanRequest(ACTIVE_PASSIVE_SCAN, 0x00000008, 6);
20c: 26 e0 ldi r18, 0x06 ; 6
20e: 48 e0 ldi r20, 0x08 ; 8
210: 50 e0 ldi r21, 0x00 ; 0
212: 60 e0 ldi r22, 0x00 ; 0
214: 70 e0 ldi r23, 0x00 ; 0
216: 81 e0 ldi r24, 0x01 ; 1
218: 0e 94 23 2d call 0x5a46
break;
21c: 3b c1 rjmp .+630 ; 0x494
case MAC_STATE_ACTIVE_PASSIVE_SCAN_FINISHED:
printf("ok\n");
21e: 88 e5 ldi r24, 0x58 ; 88
220: 91 e0 ldi r25, 0x01 ; 1
222: 0e 94 2a 3b call 0x7654
if(!IS_COORDINATOR)
mlmeSyncRequest(ppib.phyCurrentChanel,TRUE);
//mac_current_state=MAC_STATE_SYNING;
else
{
printf("ok1\n");
226: 8b e5 ldi r24, 0x5B ; 91
228: 91 e0 ldi r25, 0x01 ; 1
22a: 0e 94 2a 3b call 0x7654
cc2420_setshortaddress((uint16_t)mac_pib_data.macShortAddress.Val);
22e: 80 91 ae 08 lds r24, 0x08AE
232: 90 91 af 08 lds r25, 0x08AF
236: 0e 94 bb 1b call 0x3776
cc2420_setpanid((uint16_t)mac_pib_data.macPANId.Val);
23a: 80 91 aa 08 lds r24, 0x08AA
23e: 90 91 ab 08 lds r25, 0x08AB
242: 0e 94 e7 1b call 0x37ce
mlmeStartRequest(mac_pib_data.macPANId,3, mac_pib_data.macBeaconOrder, mac_pib_data.macSuperframeOrder, TRUE, mac_pib_data.macBattLifeExt, FALSE, FALSE, 0);
246: 88 24 eor r8, r8
248: 99 24 eor r9, r9
24a: aa 24 eor r10, r10
24c: ca 2c mov r12, r10
24e: e0 90 91 08 lds r14, 0x0891
252: 01 e0 ldi r16, 0x01 ; 1
254: 20 91 b8 08 lds r18, 0x08B8
258: 40 91 96 08 lds r20, 0x0896
25c: 63 e0 ldi r22, 0x03 ; 3
25e: 80 91 aa 08 lds r24, 0x08AA
262: 90 91 ab 08 lds r25, 0x08AB
266: 0e 94 06 2b call 0x560c
}
break;
26a: 14 c1 rjmp .+552 ; 0x494
case MAC_STATE_SYNING_END:
printf("ok2\n");
26c: 8f e5 ldi r24, 0x5F ; 95
26e: 91 e0 ldi r25, 0x01 ; 1
270: 0e 94 2a 3b call 0x7654
if(!IS_NETWORK_FORMED)
274: 80 90 c9 07 lds r8, 0x07C9
278: 88 20 and r8, r8
27a: d1 f4 brne .+52 ; 0x2b0
{
//if(phy_channel_state==PHY_IDLE)
//printf("\nstart to do the associate\n");
//mac_current_state=MAC_STATE_IDLE;
temp_node.bytes=0x88;
temp_addr.Short=mac_pib_data.macCoordShortAddress;
27c: 80 91 a4 08 lds r24, 0x08A4
280: 90 91 a5 08 lds r25, 0x08A5
284: 89 83 std Y+1, r24 ; 0x01
286: 9a 83 std Y+2, r25 ; 0x02
mlmeAssociateRequest(ppib.phyCurrentChanel, 0x02, mac_pib_data.macPANId,temp_addr , temp_node, FALSE);
288: 88 e8 ldi r24, 0x88 ; 136
28a: a8 2e mov r10, r24
28c: c9 80 ldd r12, Y+1 ; 0x01
28e: da 80 ldd r13, Y+2 ; 0x02
290: eb 80 ldd r14, Y+3 ; 0x03
292: fc 80 ldd r15, Y+4 ; 0x04
294: 0d 81 ldd r16, Y+5 ; 0x05
296: 1e 81 ldd r17, Y+6 ; 0x06
298: 2f 81 ldd r18, Y+7 ; 0x07
29a: 38 85 ldd r19, Y+8 ; 0x08
29c: 40 91 aa 08 lds r20, 0x08AA
2a0: 50 91 ab 08 lds r21, 0x08AB
2a4: 62 e0 ldi r22, 0x02 ; 2
2a6: 80 91 db 06 lds r24, 0x06DB
2aa: 0e 94 07 30 call 0x600e
2ae: f2 c0 rjmp .+484 ; 0x494
//IS_FIRST
}
else
{
if(DATA_READY)
2b0: 80 91 34 06 lds r24, 0x0634
2b4: 88 23 and r24, r24
2b6: 09 f4 brne .+2 ; 0x2ba
2b8: ed c0 rjmp .+474 ; 0x494
{
//printf("\n---sensor data sent--\n");
//---------------------------------------
//---------------------------------------
NODE_INFO dst;
NODE_INFO src;
uint8_t msdulength;
BYTE * pMsdu;
BYTE msduhandle;
BYTE txOptions;
dst.addrMode=0x02;
2ba: 82 e0 ldi r24, 0x02 ; 2
2bc: 89 87 std Y+9, r24 ; 0x09
dst.shortAddr=mac_pib_data.macCoordShortAddress;
2be: 80 91 a4 08 lds r24, 0x08A4
2c2: 90 91 a5 08 lds r25, 0x08A5
2c6: 8a 8b std Y+18, r24 ; 0x12
2c8: 9b 8b std Y+19, r25 ; 0x13
dst.panID=mac_pib_data.macPANId;
2ca: 80 91 aa 08 lds r24, 0x08AA
2ce: 90 91 ab 08 lds r25, 0x08AB
2d2: 8c 8b std Y+20, r24 ; 0x14
2d4: 9d 8b std Y+21, r25 ; 0x15
src.addrMode=0x03;
2d6: 83 e0 ldi r24, 0x03 ; 3
2d8: 8e 8b std Y+22, r24 ; 0x16
src.longAddr=mac_pib_data.macExtAddress;
2da: 88 e0 ldi r24, 0x08 ; 8
2dc: de 01 movw r26, r28
2de: 57 96 adiw r26, 0x17 ; 23
2e0: e0 eb ldi r30, 0xB0 ; 176
2e2: f8 e0 ldi r31, 0x08 ; 8
2e4: 01 90 ld r0, Z+
2e6: 0d 92 st X+, r0
2e8: 8a 95 dec r24
2ea: e1 f7 brne .-8 ; 0x2e4
src.panID=mac_pib_data.macPANId;
2ec: 80 91 aa 08 lds r24, 0x08AA
2f0: 90 91 ab 08 lds r25, 0x08AB
2f4: 89 a3 std Y+33, r24 ; 0x21
2f6: 9a a3 std Y+34, r25 ; 0x22
msdulength=20;
pMsdu=(BYTE *)SENSOR_DATA_VALUE;
msduhandle=0;
txOptions=0x01;
mcpsDataRequest(dst, src, msdulength, pMsdu, msduhandle, txOptions);
2f8: 81 e0 ldi r24, 0x01 ; 1
2fa: 8f 93 push r24
2fc: 1f 92 push r1
2fe: 86 e9 ldi r24, 0x96 ; 150
300: 96 e0 ldi r25, 0x06 ; 6
302: 9f 93 push r25
304: 8f 93 push r24
306: 84 e1 ldi r24, 0x14 ; 20
308: 8f 93 push r24
30a: 8d b7 in r24, 0x3d ; 61
30c: 9e b7 in r25, 0x3e ; 62
30e: 0d 97 sbiw r24, 0x0d ; 13
310: 0f b6 in r0, 0x3f ; 63
312: f8 94 cli
314: 9e bf out 0x3e, r25 ; 62
316: 0f be out 0x3f, r0 ; 63
318: 8d bf out 0x3d, r24 ; 61
31a: 01 96 adiw r24, 0x01 ; 1
31c: 2d e0 ldi r18, 0x0D ; 13
31e: fc 01 movw r30, r24
320: de 01 movw r26, r28
322: 56 96 adiw r26, 0x16 ; 22
324: 0d 90 ld r0, X+
326: 01 92 st Z+, r0
328: 2a 95 dec r18
32a: e1 f7 brne .-8 ; 0x324
32c: c9 84 ldd r12, Y+9 ; 0x09
32e: da 84 ldd r13, Y+10 ; 0x0a
330: eb 84 ldd r14, Y+11 ; 0x0b
332: fc 84 ldd r15, Y+12 ; 0x0c
334: 0d 85 ldd r16, Y+13 ; 0x0d
336: 1e 85 ldd r17, Y+14 ; 0x0e
338: 2f 85 ldd r18, Y+15 ; 0x0f
33a: 38 89 ldd r19, Y+16 ; 0x10
33c: 49 89 ldd r20, Y+17 ; 0x11
33e: 5a 89 ldd r21, Y+18 ; 0x12
340: 6b 89 ldd r22, Y+19 ; 0x13
342: 7c 89 ldd r23, Y+20 ; 0x14
344: 8d 89 ldd r24, Y+21 ; 0x15
346: 0e 94 c6 31 call 0x638c
34a: 8d b7 in r24, 0x3d ; 61
34c: 9e b7 in r25, 0x3e ; 62
34e: 42 96 adiw r24, 0x12 ; 18
350: 0f b6 in r0, 0x3f ; 63
352: f8 94 cli
354: 9e bf out 0x3e, r25 ; 62
356: 0f be out 0x3f, r0 ; 63
358: 8d bf out 0x3d, r24 ; 61
//mac_current_state=MAC_STATE_START_TO_SLEEP;
}
}
break;
35a: 9c c0 rjmp .+312 ; 0x494
case MAC_STATE_ASSOC_FINISHED:
printf("ok3\n");
35c: 83 e6 ldi r24, 0x63 ; 99
35e: 91 e0 ldi r25, 0x01 ; 1
360: 0e 94 2a 3b call 0x7654
//网络已经建立完成,可以启动ADC传感器采样
if((!head_of_rx_buffer)&&(!head_of_tx_buffer)&&(!head_of_timer_queue))
364: 80 91 fb 07 lds r24, 0x07FB
368: 90 91 fc 07 lds r25, 0x07FC
36c: 89 2b or r24, r25
36e: 79 f4 brne .+30 ; 0x38e
370: 80 91 d0 07 lds r24, 0x07D0
374: 90 91 d1 07 lds r25, 0x07D1
378: 89 2b or r24, r25
37a: 49 f4 brne .+18 ; 0x38e
37c: 80 91 91 09 lds r24, 0x0991
380: 90 91 92 09 lds r25, 0x0992
384: 89 2b or r24, r25
386: 19 f4 brne .+6 ; 0x38e
//printf("\nnetwork successful formed\n");
IS_NETWORK_FORMED=TRUE;
388: 81 e0 ldi r24, 0x01 ; 1
38a: 80 93 c9 07 sts 0x07C9, r24
mac_current_state=MAC_STATE_IDLE;
//break;
//test orphan scan & unicast coordinator realignment frame
//mlmeScanRequest(ORPHAN_SCAN, 0x00000008, 0);
//test PANID conflict & broadcast coordinator realignment frame
//panid_confilct_frame_send();
//test Disassociation from the RFD
//mlmeDisassociateRequest(default_long_addr, 0x02, FALSE);
mac_current_state=MAC_STATE_START_TO_SLEEP;
38e: 82 e1 ldi r24, 0x12 ; 18
390: 80 93 f9 07 sts 0x07F9, r24
break;
394: 7f c0 rjmp .+254 ; 0x494
case MAC_STATE_START_TO_SLEEP:
printf("ok4\n");
396: 87 e6 ldi r24, 0x67 ; 103
398: 91 e0 ldi r25, 0x01 ; 1
39a: 0e 94 2a 3b call 0x7654
//ADC 任务启动
PLME_SET_TRX_STATE_request(FORCE_TRX_OFF);
39e: 83 e0 ldi r24, 0x03 ; 3
3a0: 0e 94 90 1d call 0x3b20
DATA_READY=FALSE;
3a4: 10 92 34 06 sts 0x0634, r1
kertimer_start(0, KERTIMER_ONE_SHOT, 1024, GET_ADC_value);
3a8: 02 e7 ldi r16, 0x72 ; 114
3aa: 10 e0 ldi r17, 0x00 ; 0
3ac: 20 e0 ldi r18, 0x00 ; 0
3ae: 34 e0 ldi r19, 0x04 ; 4
3b0: 40 e0 ldi r20, 0x00 ; 0
3b2: 50 e0 ldi r21, 0x00 ; 0
3b4: 61 e0 ldi r22, 0x01 ; 1
3b6: 80 e0 ldi r24, 0x00 ; 0
3b8: 0e 94 3a 05 call 0xa74
//printf("\n----the current state is MAC_STATE_START_TO_SLEEP---\n");
Leds_greenOff();
3bc: 0e 94 b3 02 call 0x566
Leds_yellowOff();
3c0: 0e 94 78 02 call 0x4f0
Leds_redOff();
3c4: 0e 94 ee 02 call 0x5dc
cc2420_sendcmd(cc2420_SFLUSHRX);
3c8: 88 e0 ldi r24, 0x08 ; 8
3ca: 0e 94 35 19 call 0x326a
cc2420_sendcmd(cc2420_SFLUSHRX);
3ce: 88 e0 ldi r24, 0x08 ; 8
3d0: 0e 94 35 19 call 0x326a
head_of_systimer_queue=systimer_stop_task(head_of_systimer_queue, CAP_OVER);
3d4: 62 e0 ldi r22, 0x02 ; 2
3d6: 80 91 bb 06 lds r24, 0x06BB
3da: 90 91 bc 06 lds r25, 0x06BC
3de: 0e 94 21 0c call 0x1842
3e2: 90 93 bc 06 sts 0x06BC, r25
3e6: 80 93 bb 06 sts 0x06BB, r24
head_of_systimer_queue=systimer_stop_task(head_of_systimer_queue, RECEIVE_BEACON);
3ea: 61 e0 ldi r22, 0x01 ; 1
3ec: 0e 94 21 0c call 0x1842
3f0: 90 93 bc 06 sts 0x06BC, r25
3f4: 80 93 bb 06 sts 0x06BB, r24
while(head_of_systimer_queue!=NULL)
{
head_of_systimer_queue=systimer_stop_task(head_of_systimer_queue, head_of_systimer_queue->timer_reason);
3f8: 89 2b or r24, r25
3fa: 39 f0 breq .+14 ; 0x40a
3fc: e0 91 bb 06 lds r30, 0x06BB
400: f0 91 bc 06 lds r31, 0x06BC
404: 60 81 ld r22, Z
406: cf 01 movw r24, r30
408: f1 cf rjmp .-30 ; 0x3ec
//printf("\n---error1--\n");
}
while(head_of_timer_queue!=NULL)
{
head_of_timer_queue=timer3quere_cancel(head_of_timer_queue, head_of_timer_queue->framedsn, head_of_timer_queue->timer_reason);
40a: 80 91 91 09 lds r24, 0x0991
40e: 90 91 92 09 lds r25, 0x0992
412: 89 2b or r24, r25
414: 71 f0 breq .+28 ; 0x432
416: e0 91 91 09 lds r30, 0x0991
41a: f0 91 92 09 lds r31, 0x0992
41e: 42 81 ldd r20, Z+2 ; 0x02
420: 61 81 ldd r22, Z+1 ; 0x01
422: cf 01 movw r24, r30
424: 0e 94 d8 0d call 0x1bb0
428: 90 93 92 09 sts 0x0992, r25
42c: 80 93 91 09 sts 0x0991, r24
430: f0 cf rjmp .-32 ; 0x412
//printf("\n---error2--\n");
}
while(head_of_rx_buffer!=NULL)
{
remove_from_rx_buffer(head_of_rx_buffer);
432: 80 91 fb 07 lds r24, 0x07FB
436: 90 91 fc 07 lds r25, 0x07FC
43a: 89 2b or r24, r25
43c: 39 f0 breq .+14 ; 0x44c
43e: 80 91 fb 07 lds r24, 0x07FB
442: 90 91 fc 07 lds r25, 0x07FC
446: 0e 94 fb 24 call 0x49f6
44a: f3 cf rjmp .-26 ; 0x432
//printf("\n---error3--\n");
}
while(head_of_tx_buffer!=NULL)
{
remove_tx_queue(head_of_tx_buffer->FrameSeq);
44c: 80 91 d0 07 lds r24, 0x07D0
450: 90 91 d1 07 lds r25, 0x07D1
454: 89 2b or r24, r25
456: 41 f0 breq .+16 ; 0x468
458: e0 91 d0 07 lds r30, 0x07D0
45c: f0 91 d1 07 lds r31, 0x07D1
460: 83 81 ldd r24, Z+3 ; 0x03
462: 0e 94 09 25 call 0x4a12
466: f2 cf rjmp .-28 ; 0x44c
//printf("\n---error4--\n");
}
while(head_of_indirect_pending_buffer!=NULL)
{
remove_pending_queue(head_of_indirect_pending_buffer);
468: 80 91 83 08 lds r24, 0x0883
46c: 90 91 84 08 lds r25, 0x0884
470: 89 2b or r24, r25
472: 39 f0 breq .+14 ; 0x482
474: 80 91 83 08 lds r24, 0x0883
478: 90 91 84 08 lds r25, 0x0884
47c: 0e 94 a5 23 call 0x474a
480: f3 cf rjmp .-26 ; 0x468
//printf("\n---error5--\n");
}
printf("\n----SYSTEM SLEEPING----\n");
482: 8b e6 ldi r24, 0x6B ; 107
484: 91 e0 ldi r25, 0x01 ; 1
486: 0e 94 2a 3b call 0x7654
mac_current_state=MAC_STATE_INACTIVE;
48a: 81 e1 ldi r24, 0x11 ; 17
48c: 80 93 f9 07 sts 0x07F9, r24
OS_sleep();
490: 0e 94 79 04 call 0x8f2
break;
default: break;
//开始作associate
}
//printf("\nthe current state is %d---\n",mac_current_state);
// wdt_reset();
OS_run_task();
494: 0e 94 d1 04 call 0x9a2
498: 73 ce rjmp .-794 ; 0x180
0000049a <Leds_init>:
//-----------------------------------------------------显示led驱
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -