main.lis

来自「mega128平台下」· LIS 代码 · 共 1,179 行 · 第 1/4 页

LIS
1,179
字号
 03E6 0E940000          xcall _post
 03EA           ;         start_T2(0,DATA_TRANS_INTVL);
 03EA 24EF              ldi R18,500
 03EC 31E0              ldi R19,1
 03EE 0027              clr R16
 03F0 0E940000          xcall _start_T2
 03F4           ;    }
 03F4 05C0              xjmp L78
 03F6           L77:
 03F6           ;    else
 03F6           ;      {counter_data=0; stop_T2();}
 03F6 2224              clr R2
 03F8 20920300          sts _counter_data,R2
 03FC 0E940000          xcall _stop_T2
 0400           L78:
 0400           L76:
 0400                   .dbline 0 ; func end
 0400 0895              ret
 0402           ;           recv -> R22,R23
 0402           ;              i -> R20
                        .even
 0402           _T3_timeout::
 0402 0E940000          xcall push_gset2
 0406           ; //   led0Toggle();
 0406           ; }
 0406           ; 
 0406           ; void T3_timeout()     //发送簇内数据
 0406           ; {
 0406           ;    unsigned char *recv;
 0406           ;    unsigned char i;
 0406           ;    for(i=0;i<NODE_QUANTITY;i++)
 0406 4427              clr R20
 0408 2AC0              xjmp L83
 040A           L80:
 040A           ;       {
 040A           ;       if(flag[i]==3)
 040A 80E0              ldi R24,<_flag
 040C 90E0              ldi R25,>_flag
 040E E42F              mov R30,R20
 0410 FF27              clr R31
 0412 E80F              add R30,R24
 0414 F91F              adc R31,R25
 0416 8081              ldd R24,z+0
 0418 8330              cpi R24,3
 041A 01F5              brne L84
 041C           ;        {
 041C           ;               local_buff[4*i+1]=0;
 041C 84E0              ldi R24,4
 041E 849F              mul R24,R20
 0420 F001              movw R30,R0
 0422 80E0              ldi R24,<_local_buff+1
 0424 90E0              ldi R25,>_local_buff+1
 0426 E80F              add R30,R24
 0428 F91F              adc R31,R25
 042A 2224              clr R2
 042C 2082              std z+0,R2
 042E           ;         local_buff[4*i+2]=0;
 042E 84E0              ldi R24,4
 0430 849F              mul R24,R20
 0432 F001              movw R30,R0
 0434 80E0              ldi R24,<_local_buff+2
 0436 90E0              ldi R25,>_local_buff+2
 0438 E80F              add R30,R24
 043A F91F              adc R31,R25
 043C 2082              std z+0,R2
 043E           ;         local_buff[4*i+3]=0;
 043E 84E0              ldi R24,4
 0440 849F              mul R24,R20
 0442 F001              movw R30,R0
 0444 80E0              ldi R24,<_local_buff+3
 0446 90E0              ldi R25,>_local_buff+3
 0448 E80F              add R30,R24
 044A F91F              adc R31,R25
 044C 2082              std z+0,R2
 044E           ;         flag[i]=0;
 044E 80E0              ldi R24,<_flag
 0450 90E0              ldi R25,>_flag
 0452 E42F              mov R30,R20
 0454 FF27              clr R31
 0456 E80F              add R30,R24
 0458 F91F              adc R31,R25
 045A 2082              std z+0,R2
 045C           ;         }
 045C           L84:
 045C           L81:
 045C 4395              inc R20
 045E           L83:
 045E 4230              cpi R20,2
 0460 08F4              brsh X8
 0462 D3CF              xjmp L80
 0464           X8:
 0464           ;       }  
 0464           ;    for(i=1;i<9;i++)
 0464 41E0              ldi R20,1
 0466 0FC0              xjmp L92
 0468           L89:
 0468 80E0              ldi R24,<_local_buff-1
 046A 90E0              ldi R25,>_local_buff-1
 046C E42F              mov R30,R20
 046E FF27              clr R31
 0470 E80F              add R30,R24
 0472 F91F              adc R31,R25
 0474 2080              ldd R2,z+0
 0476 80E0              ldi R24,<_pre_trans+6
 0478 90E0              ldi R25,>_pre_trans+6
 047A E42F              mov R30,R20
 047C FF27              clr R31
 047E E80F              add R30,R24
 0480 F91F              adc R31,R25
 0482 2082              std z+0,R2
 0484           L90:
 0484 4395              inc R20
 0486           L92:
 0486 4930              cpi R20,9
 0488 78F3              brlo L89
 048A           ;       pre_trans.data[i]=local_buff[i-1];
 048A           ;    //pre_trans.data[1]=test;
 048A           ;    //test++;  
 048A           ;    
 048A           ;    counter_data++;
 048A 80910300          lds R24,_counter_data
 048E 8F5F              subi R24,255    ; addi 1
 0490 80930300          sts _counter_data,R24
 0494           ;    pre_trans.data[0]=counter_data;
 0494 282E              mov R2,R24
 0496 20922100          sts _pre_trans+6,R2
 049A           ;    
 049A           ;    recv=(unsigned char*)(&pre_trans.len);
 049A 60E0              ldi R22,<_pre_trans
 049C 70E0              ldi R23,>_pre_trans
 049E           ;    
 049E           ;    CC1100_send(recv,COMM_MSG_LENGTH+1);
 049E 20E2              ldi R18,32
 04A0 8B01              movw R16,R22
 04A2 0E940000          xcall _CC1100_send
 04A6           ;    //printf("%d",pre_trans.data[1]);
 04A6           ;    start_T2(0,DATA_TRANS_INTVL);//启动重发时钟,500ms未收到ack则重发
 04A6 24EF              ldi R18,500
 04A8 31E0              ldi R19,1
 04AA 0027              clr R16
 04AC 0E940000          xcall _start_T2
 04B0           ;    led2Toggle();
 04B0 0E940000          xcall _led2Toggle
 04B4           L79:
 04B4 0E940000          xcall pop_gset2
 04B8                   .dbline 0 ; func end
 04B8 0895              ret
 04BA           ;              i -> R20,R21
 04BA           ;           xtal -> R22,R23
                        .even
 04BA           _delay_1ms::
 04BA 0E940000          xcall push_gset2
 04BE B801              movw R22,R16
 04C0           ; }
 04C0           ; 
 04C0           ; 
 04C0           ; void delay_1ms(unsigned int xtal)
 04C0           ; {
 04C0           ;  unsigned int i;
 04C0           ;  for(i=1;i<(unsigned int)(xtal*143-2);i++)
 04C0 41E0              ldi R20,1
 04C2 50E0              ldi R21,0
 04C4 02C0              xjmp L100
 04C6           L97:
 04C6           L98:
 04C6 4F5F              subi R20,255  ; offset = 1
 04C8 5F4F              sbci R21,255
 04CA           L100:
 04CA 0FE8              ldi R16,143
 04CC 10E0              ldi R17,0
 04CE 9B01              movw R18,R22
 04D0 0E940000          xcall empy16s
 04D4 C801              movw R24,R16
 04D6 0297              sbiw R24,2
 04D8 4817              cp R20,R24
 04DA 5907              cpc R21,R25
 04DC A0F3              brlo L97
 04DE           L96:
 04DE 0E940000          xcall pop_gset2
 04E2                   .dbline 0 ; func end
 04E2 0895              ret
 04E4           ;              i -> R20,R21
 04E4           ;              n -> R22,R23
                        .even
 04E4           _delay_x::
 04E4 0E940000          xcall push_gset2
 04E8 B801              movw R22,R16
 04EA           ;  ;
 04EA           ;  }
 04EA           ; 
 04EA           ; void delay_x(unsigned int n)
 04EA           ; {
 04EA           ;  unsigned int i=0;
 04EA 4427              clr R20
 04EC 5527              clr R21
 04EE           ;  for(i=0;i<n;i++)
 04EE 05C0              xjmp L105
 04F0           L102:
 04F0 07E0              ldi R16,7
 04F2 10E0              ldi R17,0
 04F4 E2DF              xcall _delay_1ms
 04F6           L103:
 04F6 4F5F              subi R20,255  ; offset = 1
 04F8 5F4F              sbci R21,255
 04FA           L105:
 04FA 4617              cp R20,R22
 04FC 5707              cpc R21,R23
 04FE C0F3              brlo L102
 0500           L101:
 0500 0E940000          xcall pop_gset2
 0504                   .dbline 0 ; func end
 0504 0895              ret
                        .even
 0506           _main::
 0506           ;  delay_1ms(7);
 0506           ;  }
 0506           ; 
 0506           ; 
 0506           ; void main() 
 0506           ;   {
 0506           ; 
 0506           ;     init_devices();
 0506 C0DE              xcall _init_devices
 0508           ;     sched_init();
 0508 0E940000          xcall _sched_init
 050C           ;     identifier_init();
 050C 79DD              xcall _identifier_init
 050E           ;     CC1100_setInterrupt(0x01);  //RF接收状态
 050E 01E0              ldi R16,1
 0510 0E940000          xcall _CC1100_setInterrupt
 0514 02C0              xjmp L108
 0516           L107:
 0516 0E940000          xcall _run_task
 051A           L108:
 051A           ;     //start_T3(1,2000);
 051A           ; 	/*
 051A           ; 	led0Toggle();
 051A           ; 	delay(100);
 051A           ; 	led1Toggle();
 051A           ; 	delay(100);
 051A           ; 	led2Toggle();
 051A           ; 	*/
 051A           ; 	//halSpiWriteReg(CCxxx0_CHANNR, 0x0A);//初始化通道置为A
 051A           ; 	
 051A           ;     
 051A           ;     /*my program*/
 051A           ; 	
 051A           ; 	//CC1100_send(a,4);
 051A           ; 	//puts("hello\n");
 051A           ; 	
 051A           ; 	/*my program end*/
 051A           ; 	
 051A           ; 	/*schedule*/
 051A           ; 	while(1) 
 051A FDCF              xjmp L107
 051C           X9:
 051C           L106:
 051C                   .dbline 0 ; func end
 051C 0895              ret
                        .area bss(ram, con, rel)
 0000           _ackack::
 0000                   .blkb 2
 0002           _change_channel::
 0002                   .blkb 1
 0003           _counter_data::
 0003                   .blkb 1
 0004           _counter_sync::
 0004                   .blkb 1
 0005           _sync_Nflag::
 0005                   .blkb 1
 0006           _sync_Cflag::
 0006                   .blkb 1
 0007           _local_buff::
 0007                   .blkb 8
 000F           _ack::
 000F                   .blkb 12
 001B           _pre_trans::
 001B                   .blkb 32
 003B           _recv::
 003B                   .blkb 32
                        .area data(ram, con, rel)
 0004           L37:
 0004                   .blkb 4
                        .area idata
 0004 25640A00          .byte 37,'d,10,0
                        .area data(ram, con, rel)
 0008           L10:
 0008                   .blkb 6
                        .area idata
 0008 646F6E650A00      .byte 'd,'o,'n,'e,10,0
                        .area data(ram, con, rel)
                        .area func_lit
 0000 DA01      PL_resend:      .word `_resend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?