📄 main.lis
字号:
0154 ; if (SyncSeqNo>=2)
0154 80912700 lds R24,_SyncSeqNo
0158 8230 cpi R24,2
015A 10F0 brlo L19
015C ; stop_T0();
015C 0E940000 xcall _stop_T0
0160 L19:
0160 L17:
0160 .dbline 0 ; func end
0160 0895 ret
0162 ; j -> <dead>
0162 ; i -> R16
.even
0162 _T1_timeout::
0162 ;
0162 ; }
0162 ;
0162 ; void T1_timeout()
0162 ; {
0162 ; unsigned char i, j;
0162 ; for(i=1; i<=CLUSTER_NUMBER; i++)
0162 01E0 ldi R16,1
0164 2DC0 xjmp L25
0166 L22:
0166 ; {
0166 ; if(receive_flag[i]==1)
0166 80E0 ldi R24,<_receive_flag
0168 90E0 ldi R25,>_receive_flag
016A E02F mov R30,R16
016C FF27 clr R31
016E E80F add R30,R24
0170 F91F adc R31,R25
0172 8081 ldd R24,z+0
0174 8130 cpi R24,1
0176 81F4 brne L26
0178 ; {
0178 ; unreceive_timer[i] = 0;
0178 80E0 ldi R24,<_unreceive_timer
017A 90E0 ldi R25,>_unreceive_timer
017C E02F mov R30,R16
017E FF27 clr R31
0180 E80F add R30,R24
0182 F91F adc R31,R25
0184 2224 clr R2
0186 2082 std z+0,R2
0188 ; receive_flag[i] =0;
0188 80E0 ldi R24,<_receive_flag
018A 90E0 ldi R25,>_receive_flag
018C E02F mov R30,R16
018E FF27 clr R31
0190 E80F add R30,R24
0192 F91F adc R31,R25
0194 2082 std z+0,R2
0196 ; }
0196 0AC0 xjmp L27
0198 L26:
0198 ; else
0198 ; unreceive_timer[i]++;
0198 80E0 ldi R24,<_unreceive_timer
019A 90E0 ldi R25,>_unreceive_timer
019C 202E mov R2,R16
019E 3324 clr R3
01A0 280E add R2,R24
01A2 391E adc R3,R25
01A4 F101 movw R30,R2
01A6 8081 ldd R24,z+0
01A8 8F5F subi R24,255 ; addi 1
01AA 8083 std z+0,R24
01AC L27:
01AC ;
01AC ; if(unreceive_timer[i]>=3)
01AC 80E0 ldi R24,<_unreceive_timer
01AE 90E0 ldi R25,>_unreceive_timer
01B0 E02F mov R30,R16
01B2 FF27 clr R31
01B4 E80F add R30,R24
01B6 F91F adc R31,R25
01B8 8081 ldd R24,z+0
01BA 8330 cpi R24,3
01BC 00F0 brlo L28
01BE ; {
01BE ; /* for(j=0; j<NODE_NUMBER; j++)
01BE ; {
01BE ; Node[i-1][j]->temp = 0;
01BE ; Node[i-1][j]->vol = 0;
01BE ; }
01BE ; */
01BE ; //发送一个故障报告
01BE ; }
01BE L28:
01BE L23:
01BE 0395 inc R16
01C0 L25:
01C0 82E0 ldi R24,2
01C2 8017 cp R24,R16
01C4 08F0 brlo X0
01C6 CFCF xjmp L22
01C8 X0:
01C8 L21:
01C8 .dbline 0 ; func end
01C8 0895 ret
.even
01CA _T2_timeout::
01CA ; }
01CA ; }
01CA ;
01CA ; void T2_timeout()
01CA ; {
01CA ; led0Toggle();
01CA 0E940000 xcall _led0Toggle
01CE L30:
01CE .dbline 0 ; func end
01CE 0895 ret
.even
01D0 _T3_timeout::
01D0 ; }
01D0 ; void T3_timeout()
01D0 ; {
01D0 ; led1Toggle();
01D0 0E940000 xcall _led1Toggle
01D4 L31:
01D4 .dbline 0 ; func end
01D4 0895 ret
.even
01D6 _CC1100_sendDone::
01D6 ; }
01D6 ;
01D6 ; void CC1100_sendDone()
01D6 ; {
01D6 ; //led0Off();
01D6 ; return;
01D6 L32:
01D6 .dbline 0 ; func end
01D6 0895 ret
.even
01D8 _radio_ack_task::
01D8 ; }
01D8 ; /*
01D8 ; * ACK sink
01D8 ; */
01D8 ; void radio_ack_task()
01D8 ; {
01D8 ; RADIO_ACK_MSG.len = LEN_SEND_MSG;
01D8 8CE0 ldi R24,12
01DA 80932800 sts _RADIO_ACK_MSG,R24
01DE ; RADIO_ACK_MSG.ID = 0x00;
01DE 2224 clr R2
01E0 20922900 sts _RADIO_ACK_MSG+1,R2
01E4 ; RADIO_ACK_MSG.GID = 0x00;
01E4 20922A00 sts _RADIO_ACK_MSG+2,R2
01E8 ; RADIO_ACK_MSG.type = CLUSTER_ACK;
01E8 83E0 ldi R24,3
01EA 80932D00 sts _RADIO_ACK_MSG+5,R24
01EE ; // RADIO_ACK_MSG->crc = xcrc_calc(RADIO_ACK_MSG, 2,17);
01EE ; CC1100_send((((char *)&RADIO_ACK_MSG)),LEN_SEND_MSG+1);
01EE 2DE0 ldi R18,13
01F0 00E0 ldi R16,<_RADIO_ACK_MSG
01F2 10E0 ldi R17,>_RADIO_ACK_MSG
01F4 0E940000 xcall _CC1100_send
01F8 L33:
01F8 .dbline 0 ; func end
01F8 0895 ret
01FA ; i -> <dead>
01FA ; msg -> R22,R23
01FA ; target -> R22,R23
01FA ; cluster -> R10
01FA ; receive_msg -> R20,R21
.even
01FA _CC1100_receive::
01FA 0E940000 xcall push_gset3
01FE ; }
01FE ;
01FE ; extern unsigned char rxBuffer[32];
01FE ;
01FE ; void CC1100_receive()
01FE ; {
01FE ; COMM_MSG *receive_msg;
01FE ; unsigned char cluster;
01FE ; unsigned short int target;
01FE ; unsigned char *msg = (&rxBuffer[0]);
01FE 60E0 ldi R22,<_rxBuffer
0200 70E0 ldi R23,>_rxBuffer
0202 ; //printf("recv\n");
0202 ; led1Toggle();
0202 0E940000 xcall _led1Toggle
0206 ; receive_msg = (COMM_MSG *)msg;
0206 AB01 movw R20,R22
0208 ; cluster = receive_msg->GID;
0208 FA01 movw R30,R20
020A A280 ldd R10,z+2
020C ; target = cluster;
020C 6A2D mov R22,R10
020E 7727 clr R23
0210 ; target = ((target<<8) & 0xff00);
0210 762F mov R23,R22
0212 6627 clr R22
0214 6070 andi R22,0
0216 ; unreceive_timer[cluster-1] = 0;
0216 80E0 ldi R24,<_unreceive_timer-1
0218 90E0 ldi R25,>_unreceive_timer-1
021A EA2D mov R30,R10
021C FF27 clr R31
021E E80F add R30,R24
0220 F91F adc R31,R25
0222 2224 clr R2
0224 2082 std z+0,R2
0226 ; receive_flag[cluster-1]= 1;
0226 80E0 ldi R24,<_receive_flag-1
0228 90E0 ldi R25,>_receive_flag-1
022A EA2D mov R30,R10
022C FF27 clr R31
022E E80F add R30,R24
0230 F91F adc R31,R25
0232 81E0 ldi R24,1
0234 8083 std z+0,R24
0236 ; switch(receive_msg->type)
0236 FA01 movw R30,R20
0238 A580 ldd R10,z+5
023A BB24 clr R11
023C C501 movw R24,R10
023E 8D31 cpi R24,29
0240 E0E0 ldi R30,0
0242 9E07 cpc R25,R30
0244 09F4 brne X2
0246 87C0 xjmp L73
0248 X2:
0248 8D31 cpi R24,29
024A E0E0 ldi R30,0
024C 9E07 cpc R25,R30
024E 0CF4 brge X3
0250 9CC0 xjmp L41
0252 X3:
0252 L79:
0252 C501 movw R24,R10
0254 8C33 cpi R24,60
0256 E0E0 ldi R30,0
0258 9E07 cpc R25,R30
025A 09F0 breq L43
025C 96C0 xjmp L41
025E X1:
025E ; {
025E L43:
025E ; int i;
025E ; case CLUSTER_DATA:
025E ; {
025E ;
025E ; /*for(i=0;i<NODE_NUMBER;i++) //NODE_NUMBER=2
025E ; {
025E ; Node[cluster-1][i]->ID = receive_msg->data[(i*3)+0];
025E ; Node[cluster-1][i]->temp = receive_msg->data[(i*3)+1];
025E ; Node[cluster-1][i]->vol = receive_msg->data[(i*3)+2];
025E ; // //
025E ; */
025E ; Data[0]=29;
025E 8DE1 ldi R24,29
0260 80930800 sts _Data,R24
0264 ; Data[1]=70;
0264 86E4 ldi R24,70
0266 80930900 sts _Data+1,R24
026A ; Data[2]=receive_msg->GID;
026A FA01 movw R30,R20
026C 2280 ldd R2,z+2
026E 20920A00 sts _Data+2,R2
0272 ; Data[3]=receive_msg->data[1];
0272 FA01 movw R30,R20
0274 2780 ldd R2,z+7
0276 20920B00 sts _Data+3,R2
027A ; Data[4]=receive_msg->data[2];
027A FA01 movw R30,R20
027C 2084 ldd R2,z+8
027E 20920C00 sts _Data+4,R2
0282 ; Data[5]=receive_msg->data[3];
0282 FA01 movw R30,R20
0284 2184 ldd R2,z+9
0286 20920D00 sts _Data+5,R2
028A ; Data[6]=receive_msg->data[4];
028A FA01 movw R30,R20
028C 2284 ldd R2,z+10
028E 20920E00 sts _Data+6,R2
0292 ;
0292 ; Data[7]=receive_msg->GID;
0292 FA01 movw R30,R20
0294 2280 ldd R2,z+2
0296 20920F00 sts _Data+7,R2
029A ; Data[8]=receive_msg->data[5];
029A FA01 movw R30,R20
029C 2384 ldd R2,z+11
029E 20921000 sts _Data+8,R2
02A2 ; Data[9]=receive_msg->data[6];
02A2 FA01 movw R30,R20
02A4 2484 ldd R2,z+12
02A6 20921100 sts _Data+9,R2
02AA ; Data[10]=receive_msg->data[7];
02AA FA01 movw R30,R20
02AC 2584 ldd R2,z+13
02AE 20921200 sts _Data+10,R2
02B2 ; Data[11]=receive_msg->data[8];
02B2 FA01 movw R30,R20
02B4 2684 ldd R2,z+14
02B6 20921300 sts _Data+11,R2
02BA ;
02BA ; Data[12]=receive_msg->GID;
02BA FA01 movw R30,R20
02BC 2280 ldd R2,z+2
02BE 20921400 sts _Data+12,R2
02C2 ; Data[13]=receive_msg->data[9];
02C2 FA01 movw R30,R20
02C4 2784 ldd R2,z+15
02C6 20921500 sts _Data+13,R2
02CA ; Data[14]=receive_msg->data[10];
02CA FA01 movw R30,R20
02CC 2088 ldd R2,z+16
02CE 20921600 sts _Data+14,R2
02D2 ; Data[15]=receive_msg->data[11];
02D2 FA01 movw R30,R20
02D4 2188 ldd R2,z+17
02D6 20921700 sts _Data+15,R2
02DA ; Data[16]=receive_msg->data[12];
02DA FA01 movw R30,R20
02DC 2288 ldd R2,z+18
02DE 20921800 sts _Data+16,R2
02E2 ;
02E2 ; Data[17]=receive_msg->GID;
02E2 FA01 movw R30,R20
02E4 2280 ldd R2,z+2
02E6 20921900 sts _Data+17,R2
02EA ; Data[18]=receive_msg->data[13];
02EA FA01 movw R30,R20
02EC 2388 ldd R2,z+19
02EE 20921A00 sts _Data+18,R2
02F2 ; Data[19]=receive_msg->data[14];
02F2 FA01 movw R30,R20
02F4 2488 ldd R2,z+20
02F6 20921B00 sts _Data+19,R2
02FA ; Data[20]=receive_msg->data[15];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -