⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mac_timer.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   000005                ; Saved register size: 15
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FE           MOV     R6,A
   \   000007   EB           MOV     A,R3
   \   000008   FF           MOV     R7,A
    245          
    246              // Adjust the timestamp for extra 1/4 symbol RX/TX chain delay
    247              pTimestamp->counter -= TRANSMITTER_DELAY;
   \   000009   8E82         MOV     DPL,R6
   \   00000B   8F83         MOV     DPH,R7
   \   00000D   E0           MOVX    A,@DPTR
   \   00000E   24BB         ADD     A,#-0x45
   \   000010   F0           MOVX    @DPTR,A
   \   000011   A3           INC     DPTR
   \   000012   E0           MOVX    A,@DPTR
   \   000013   34FF         ADDC    A,#-0x1
   \   000015   F0           MOVX    @DPTR,A
   \   000016   8E82         MOV     DPL,R6
   \   000018   8F83         MOV     DPH,R7
   \   00001A   C3           CLR     C
   \   00001B   E0           MOVX    A,@DPTR
   \   00001C   9400         SUBB    A,#0x0
   \   00001E   A3           INC     DPTR
   \   00001F   E0           MOVX    A,@DPTR
   \   000020   9400         SUBB    A,#0x0
   \   000022   A2D2         MOV     C,0xD0 /* PSW */.2
   \   000024   65D0         XRL     A,PSW
   \   000026   33           RLC     A
   \   000027   5020         JNC     ??mtimAlignWithBeacon_0
    248              if (pTimestamp->counter < 0) {
    249                  pTimestamp->counter += TIMER2_BACKOFF_SLOT_COUNTER_VALUE;
   \   000029   8E82         MOV     DPL,R6
   \   00002B   8F83         MOV     DPH,R7
   \   00002D   E0           MOVX    A,@DPTR
   \   00002E   2400         ADD     A,#0x0
   \   000030   F0           MOVX    @DPTR,A
   \   000031   A3           INC     DPTR
   \   000032   E0           MOVX    A,@DPTR
   \   000033   3428         ADDC    A,#0x28
   \   000035   F0           MOVX    @DPTR,A
    250                  pTimestamp->overflowCounter--;
   \   000036   90....       MOV     DPTR,#__Constant_ffffffff
   \   000039   78..         MOV     R0,#?V0 + 0
   \   00003B   12....       LCALL   ?L_MOV_X
   \   00003E   8E82         MOV     DPL,R6
   \   000040   8F83         MOV     DPH,R7
   \   000042   A3           INC     DPTR
   \   000043   A3           INC     DPTR
   \   000044   78..         MOV     R0,#?V0 + 0
   \   000046   12....       LCALL   ?L_ADD_TO_X
    251              }
    252          
    253              // Update the MAC timer
    254              T2_SET_OVERFLOW_COUNTER(T2_GET_OVERFLOW_COUNTER() - pTimestamp->overflowCounter);
   \                     ??mtimAlignWithBeacon_0:
   \   000049                ; Setup parameters for call to function T2_GET_OVERFLOW_COUNTER
   \   000049   90....       MOV     DPTR,#(T2_GET_OVERFLOW_COUNTER & 0xffff)
   \   00004C   74..         MOV     A,#((T2_GET_OVERFLOW_COUNTER >> 16) & 0xff)
   \   00004E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000051   8E82         MOV     DPL,R6
   \   000053   8F83         MOV     DPH,R7
   \   000055   A3           INC     DPTR
   \   000056   A3           INC     DPTR
   \   000057   78..         MOV     R0,#?V0 + 4
   \   000059   12....       LCALL   ?L_MOV_X
   \   00005C   EA           MOV     A,R2
   \   00005D   C3           CLR     C
   \   00005E   95..         SUBB    A,?V0 + 4
   \   000060   F5A1         MOV     0xa1,A
   \   000062                ; Setup parameters for call to function T2_GET_OVERFLOW_COUNTER
   \   000062   90....       MOV     DPTR,#(T2_GET_OVERFLOW_COUNTER & 0xffff)
   \   000065   74..         MOV     A,#((T2_GET_OVERFLOW_COUNTER >> 16) & 0xff)
   \   000067   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00006A   8E82         MOV     DPL,R6
   \   00006C   8F83         MOV     DPH,R7
   \   00006E   A3           INC     DPTR
   \   00006F   A3           INC     DPTR
   \   000070   78..         MOV     R0,#?V0 + 0
   \   000072   12....       LCALL   ?L_MOV_X
   \   000075   EA           MOV     A,R2
   \   000076   C3           CLR     C
   \   000077   95..         SUBB    A,?V0 + 0
   \   000079   EB           MOV     A,R3
   \   00007A   95..         SUBB    A,?V0 + 1
   \   00007C   F5A2         MOV     0xa2,A
   \   00007E                ; Setup parameters for call to function T2_GET_OVERFLOW_COUNTER
   \   00007E   90....       MOV     DPTR,#(T2_GET_OVERFLOW_COUNTER & 0xffff)
   \   000081   74..         MOV     A,#((T2_GET_OVERFLOW_COUNTER >> 16) & 0xff)
   \   000083   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000086   8A..         MOV     ?V0 + 0,R2
   \   000088   8B..         MOV     ?V0 + 1,R3
   \   00008A   8C..         MOV     ?V0 + 2,R4
   \   00008C   8D..         MOV     ?V0 + 3,R5
   \   00008E   8E82         MOV     DPL,R6
   \   000090   8F83         MOV     DPH,R7
   \   000092   A3           INC     DPTR
   \   000093   A3           INC     DPTR
   \   000094   78..         MOV     R0,#?V0 + 0
   \   000096   12....       LCALL   ?L_SUB_X
   \   000099   7410         MOV     A,#0x10
   \   00009B   78..         MOV     R0,#?V0 + 0
   \   00009D   12....       LCALL   ?UL_SHR
   \   0000A0   E5..         MOV     A,?V0 + 0
   \   0000A2   F5A3         MOV     0xa3,A
    255              T2_SET_COUNTER_DELTA_DELAY(pTimestamp->counter);
   \   0000A4   8E82         MOV     DPL,R6
   \   0000A6   8F83         MOV     DPH,R7
   \   0000A8   E0           MOVX    A,@DPTR
   \   0000A9   F5A6         MOV     0xa6,A
   \   0000AB   A3           INC     DPTR
   \   0000AC   E0           MOVX    A,@DPTR
   \   0000AD   F5A7         MOV     0xa7,A
    256          
    257              // Update the "CAP is active" indicator (used by the TX engine)
    258              T2_SET_OVERFLOW_COUNTER_COMPARE_VALUE(msupCalcCapDuration());
   \   0000AF                ; Setup parameters for call to function msupCalcCapDuration
   \   0000AF   12....       LCALL   msupCalcCapDuration
   \   0000B2   EA           MOV     A,R2
   \   0000B3   F59C         MOV     0x9c,A
   \   0000B5                ; Setup parameters for call to function msupCalcCapDuration
   \   0000B5   12....       LCALL   msupCalcCapDuration
   \   0000B8   EB           MOV     A,R3
   \   0000B9   F59D         MOV     0x9d,A
   \   0000BB   E59E         MOV     A,0x9e
   \   0000BD   FE           MOV     R6,A
   \   0000BE                ; Setup parameters for call to function msupCalcCapDuration
   \   0000BE   12....       LCALL   msupCalcCapDuration
   \   0000C1   EC           MOV     A,R4
   \   0000C2   540F         ANL     A,#0xf
   \   0000C4   C0E0         PUSH    A
   \   0000C6   74F0         MOV     A,#-0x10
   \   0000C8   5E           ANL     A,R6
   \   0000C9   FA           MOV     R2,A
   \   0000CA   D0E0         POP     A
   \   0000CC   4A           ORL     A,R2
   \   0000CD   F59E         MOV     0x9e,A
    259              T2_SET_CAP_ACTIVE();
   \   0000CF   53C3DF       ANL     0xc3,#0xdf
    260          
    261          } // mtimAlignWithBeacon
   \   0000D2   02....       LJMP    ?Subroutine0
    262          
    263          
    264          //-------------------------------------------------------------------------------------------------------
    265          //  void mtimStartSync (void)
    266          //
    267          //  DESCRIPTION:
    268          //      Start Timer2 in synchronous mode.  The routine waits until Timer2 has started
    269          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    270          ROOT void mtimStartSync (void)
   \                     mtimStartSync:
    271          {
   \   000000                ; Saved register size: 0
   \   000000                ; Auto size: 0
    272              BYTE  timer2Started;
    273          
    274              T2_START_SYNC();
   \   000000   43C302       ORL     0xc3,#0x2
   \   000003   43C301       ORL     0xc3,#0x1
    275              do
    276              {
    277                  timer2Started = T2CNF & TIMER2_RUN_BM;
   \                     ??mtimStartSync_0:
   \   000006   E5C3         MOV     A,0xc3
   \   000008   A2E0         MOV     C,0xE0 /* A   */.0
   \   00000A   E4           CLR     A
   \   00000B   92E0         MOV     0xE0 /* A   */.0,C
    278              }while (timer2Started == 0);
   \   00000D   60F7         JZ      ??mtimStartSync_0
    279          }
   \   00000F   22           RET

   \                                 In segment XDATA_I, align 1, keep-with-next
   \                     __Constant_0:
   \   000000                DS 4
   \   000004                REQUIRE `?<Initializer for __Constant_0>`
   \   000004                REQUIRE __INIT_XDATA_I

   \                                 In segment XDATA_ID, align 1, keep-with-next
   \                     `?<Initializer for __Constant_0>`:
   \   000000   00000000     DD 0

   \                                 In segment XDATA_I, align 1, keep-with-next
   \                     __Constant_ffffffff:
   \   000000                DS 4
   \   000004                REQUIRE `?<Initializer for __Constant_ffffffff>`
   \   000004                REQUIRE __INIT_XDATA_I

   \                                 In segment XDATA_ID, align 1, keep-with-next
   \                     `?<Initializer for __Constant_ffffffff>`:
   \   000000   FFFFFFFF     DD 4294967295

   \                                 In segment SFR_AN, at 0xa8
   \   union <unnamed> volatile __sfr _A_IEN0
   \                     _A_IEN0:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xc0
   \   union <unnamed> volatile __sfr _A_IRCON
   \                     _A_IRCON:
   \   000000                DS 1

   Maximum stack usage in bytes:

     Function                     ISTACK PSTACK XSTACK
     --------                     ------ ------ ------
     mtimAlignWithBeacon              1      0     15
       -> T2_GET_OVERFLOW_COUNTER     0      0     30
       -> T2_GET_OVERFLOW_COUNTER     0      0     30
       -> T2_GET_OVERFLOW_COUNTER     0      0     30
       -> msupCalcCapDuration         0      0     30
       -> msupCalcCapDuration         0      0     30
       -> msupCalcCapDuration         0      0     30
     mtimCancelCallback               1      0     12
     mtimInit                         3      0      0
       -> mtimStartSync               4      0      0
     mtimSetCallback                  1      0     24
     mtimStartSync                    2      0      0


   Segment part sizes:

     Function/Label                 Bytes
     --------------                 -----
     T2CMP                             1
     T2PEROF0                          1
     T2PEROF1                          1
     T2PEROF2                          1
     T2OF0                             1
     T2OF1                             1
     T2OF2                             1
     T2CAPLPL                          1
     T2CAPHPH                          1
     T2TLD                             1
     T2THD                             1
     T2CNF                             1
     pMtimCallbacks                  108
     mtimInfo                         11
     firstCallback                     1
     intAlreadyOff                     1
     mtimInit                        101
     mtimSetCallback                 430
     ?Subroutine0                      5
     mtimCancelCallback              183
     mtimAlignWithBeacon             213
     mtimStartSync                    16
     __Constant_0                      4
     ?<Initializer for __Constant_0>
                                       4
     __Constant_ffffffff               4
     ?<Initializer for __Constant_ffffffff>
                                       4
     _A_IEN0                           1
     _A_IRCON                          1

 
   2 bytes in segment DATA_Z
 948 bytes in segment NEAR_CODE
  11 bytes in segment PM0_XDATA
  14 bytes in segment SFR_AN
 108 bytes in segment XDATA_AN
   8 bytes in segment XDATA_I
   8 bytes in segment XDATA_ID
 
 948 bytes of CODE  memory (+   8 bytes shared)
   2 bytes of DATA  memory (+  14 bytes shared)
  11 bytes of XDATA memory (+ 116 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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