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

📄 mac_mcu.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
    309           * @fn          macMcuTimerCapture
    310           *
    311           * @brief       Returns the last timer capture.  This capture should have occurred at the
    312           *              receive time of the last frame (the last time SFD transitioned to active).
    313           *
    314           * @param       none
    315           *
    316           * @return      last capture of hardware timer (full 16-bit value)
    317           **************************************************************************************************
    318           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    319          uint16 macMcuTimerCapture(void)
   \                     macMcuTimerCapture:
    320          {
   \   000000                ; Saved register size: 2
   \   000000                ; Auto size: 0
    321            uint16 timerCapture;
    322          
    323            timerCapture = T2CAPLPL;
   \   000000   AAA4         MOV     R2,0xa4
    324            timerCapture |= T2CAPHPH << 8;
   \   000002   E5A5         MOV     A,0xa5
   \   000004   FB           MOV     R3,A
    325          
    326            return (timerCapture);
   \   000005   02....       LJMP    ?BRET
    327          }
    328          
    329          
    330          /**************************************************************************************************
    331           * @fn          macMcuOverflowCount
    332           *
    333           * @brief       Returns the value of the overflow counter which is a special hardware feature.
    334           *              The overflow count actually is only 20 bits of information.
    335           *
    336           * @param       none
    337           *
    338           * @return      value of overflow counter
    339           **************************************************************************************************
    340           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    341          uint32 macMcuOverflowCount(void)
   \                     macMcuOverflowCount:
    342          {
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 4
   \   000005   74FC         MOV     A,#-0x4
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
    343            uint32 overflowCount;
    344          
    345            /* for efficiency, the 32-bit value is encoded using endian abstracted indexing */
    346          
    347            /* must read T2OF0 first, this latches T2OF1 and T2OF2 */
    348            ((uint8 *)&overflowCount)[UINT32_NDX0] = T2OF0;
   \   00000A   E5A1         MOV     A,0xa1
   \   00000C   85..82       MOV     DPL,?XSP + 0
   \   00000F   85..83       MOV     DPH,?XSP + 1
   \   000012   F0           MOVX    @DPTR,A
    349            ((uint8 *)&overflowCount)[UINT32_NDX1] = T2OF1;
   \   000013   E5A2         MOV     A,0xa2
   \   000015   C0E0         PUSH    A
   \   000017   7401         MOV     A,#0x1
   \   000019   12....       LCALL   ?XSTACK_DISP0_8
   \   00001C   D0E0         POP     A
   \   00001E   F0           MOVX    @DPTR,A
    350            ((uint8 *)&overflowCount)[UINT32_NDX2] = T2OF2;
   \   00001F   E5A3         MOV     A,0xa3
   \   000021   80..         SJMP    ?Subroutine5
    351            ((uint8 *)&overflowCount)[UINT32_NDX3] = 0;
    352          
    353            return (overflowCount);
    354          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine5:
   \   000000   C0E0         PUSH    A
   \   000002   7402         MOV     A,#0x2
   \   000004   12....       LCALL   ?XSTACK_DISP0_8
   \   000007   D0E0         POP     A
   \   000009   F0           MOVX    @DPTR,A
   \   00000A   7403         MOV     A,#0x3
   \   00000C   12....       LCALL   ?XSTACK_DISP0_8
   \   00000F   E4           CLR     A
   \   000010   12....       LCALL   ??Subroutine0_0 & 0xFFFF
   \                     ??CrossCallReturnLabel_4:
   \   000013   12....       LCALL   ?L_MOV_X
   \   000016   AA..         MOV     R2,?V0 + 0
   \   000018   AB..         MOV     R3,?V0 + 1
   \   00001A   AC..         MOV     R4,?V0 + 2
   \   00001C   AD..         MOV     R5,?V0 + 3
   \                     ??Subroutine5_0:
   \   00001E   7404         MOV     A,#0x4
   \   000020   12....       LCALL   ?DEALLOC_XSTACK8
   \   000023   7F04         MOV     R7,#0x4
   \   000025   02....       LJMP    ?BANKED_LEAVE_XDATA

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   85..82       MOV     DPL,?XSP + 0
   \   000003   85..83       MOV     DPH,?XSP + 1
   \   000006   EA           MOV     A,R2
   \   000007   F0           MOVX    @DPTR,A
   \   000008   A3           INC     DPTR
   \   000009   EB           MOV     A,R3
   \   00000A   F0           MOVX    @DPTR,A
   \   00000B   A3           INC     DPTR
   \   00000C   EC           MOV     A,R4
   \   00000D   F0           MOVX    @DPTR,A
   \   00000E   A3           INC     DPTR
   \   00000F   ED           MOV     A,R5
   \                     ??Subroutine0_0:
   \   000010   F0           MOVX    @DPTR,A
   \   000011   85..82       MOV     DPL,?XSP + 0
   \   000014   85..83       MOV     DPH,?XSP + 1
   \   000017   78..         MOV     R0,#?V0 + 0
   \   000019   22           RET
    355          
    356          
    357          /**************************************************************************************************
    358           * @fn          macMcuOverflowCapture
    359           *
    360           * @brief       Returns the last capture of the overflow counter.  A special hardware feature
    361           *              captures the overflow counter when the regular hardware timer is captured.
    362           *
    363           * @param       none
    364           *
    365           * @return      last capture of overflow count
    366           **************************************************************************************************
    367           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    368          uint32 macMcuOverflowCapture(void)
   \                     macMcuOverflowCapture:
    369          {
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 4
   \   000005   74FC         MOV     A,#-0x4
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
    370            uint32 overflowCapture;
    371          
    372            /* for efficiency, the 32-bit value is encoded using endian abstracted indexing */
    373          
    374            ((uint8 *)&overflowCapture)[UINT32_NDX0] = T2PEROF0;
   \   00000A   E59C         MOV     A,0x9c
   \   00000C   85..82       MOV     DPL,?XSP + 0
   \   00000F   85..83       MOV     DPH,?XSP + 1
   \   000012   F0           MOVX    @DPTR,A
    375            ((uint8 *)&overflowCapture)[UINT32_NDX1] = T2PEROF1;
   \   000013   E59D         MOV     A,0x9d
   \   000015   C0E0         PUSH    A
   \   000017   7401         MOV     A,#0x1
   \   000019   12....       LCALL   ?XSTACK_DISP0_8
   \   00001C   D0E0         POP     A
   \   00001E   F0           MOVX    @DPTR,A
    376            ((uint8 *)&overflowCapture)[UINT32_NDX2] = T2PEROF2 & PEROF2_BITS;
   \   00001F   740F         MOV     A,#0xf
   \   000021   559E         ANL     A,0x9e
   \   000023   80..         SJMP    ?Subroutine5
    377            ((uint8 *)&overflowCapture)[UINT32_NDX3] = 0;
    378          
    379            return (overflowCapture);
    380          }
    381          
    382          
    383          /**************************************************************************************************
    384           * @fn          macMcuOverflowSetCount
    385           *
    386           * @brief       Sets the value of the hardware overflow counter.
    387           *
    388           * @param       count - new overflow count value
    389           *
    390           * @return      none
    391           **************************************************************************************************
    392           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    393          void macMcuOverflowSetCount(uint32 count)
   \                     macMcuOverflowSetCount:
    394          {
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 4
   \   000005   74FC         MOV     A,#-0x4
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   12....       LCALL   ?Subroutine0 & 0xFFFF
    395            MAC_ASSERT(!((count >> 16) & ~PEROF2_BITS));   /* illegal count value */
   \                     ??CrossCallReturnLabel_2:
   \   00000D   12....       LCALL   ?L_MOV_X
   \   000010   7410         MOV     A,#0x10
   \   000012   78..         MOV     R0,#?V0 + 0
   \   000014   12....       LCALL   ?UL_SHR
   \   000017   12....       LCALL   ?Subroutine1 & 0xFFFF
   \                     ??CrossCallReturnLabel_0:
   \   00001A   7001         JNZ     ??macMcuOverflowSetCount_0
   \   00001C   E9           MOV     A,R1
   \                     ??macMcuOverflowSetCount_0:
   \   00001D   6008         JZ      ??macMcuOverflowSetCount_1
   \   00001F                ; Setup parameters for call to function halAssertHandler
   \   00001F   90....       MOV     DPTR,#(halAssertHandler & 0xffff)
   \   000022   74..         MOV     A,#((halAssertHandler >> 16) & 0xff)
   \   000024   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    396          
    397            /* for efficiency, the 32-bit value is decoded using endian abstracted indexing */
    398          
    399            /* T2OF2 must be written last */
    400            T2OF0 = ((uint8 *)&count)[UINT32_NDX0];
   \                     ??macMcuOverflowSetCount_1:
   \   000027   85..82       MOV     DPL,?XSP + 0
   \   00002A   85..83       MOV     DPH,?XSP + 1
   \   00002D   E0           MOVX    A,@DPTR
   \   00002E   F5A1         MOV     0xa1,A
    401            T2OF1 = ((uint8 *)&count)[UINT32_NDX1];
   \   000030   7401         MOV     A,#0x1
   \   000032   12....       LCALL   ?XSTACK_DISP0_8
   \   000035   E0           MOVX    A,@DPTR
   \   000036   F5A2         MOV     0xa2,A
    402            T2OF2 = ((uint8 *)&count)[UINT32_NDX2];
   \   000038   7402         MOV     A,#0x2
   \   00003A   12....       LCALL   ?XSTACK_DISP0_8
   \   00003D   E0           MOVX    A,@DPTR
   \   00003E   F5A3         MOV     0xa3,A
    403          }
   \   000040   80..         SJMP    ??Subroutine5_0

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine1:
   \   000000   74F0         MOV     A,#-0x10
   \   000002   55..         ANL     A,?V0 + 0
   \   000004   F8           MOV     R0,A
   \   000005   74FF         MOV     A,#-0x1
   \   000007   55..         ANL     A,?V0 + 1
   \   000009   F9           MOV     R1,A
   \   00000A   E8           MOV     A,R0
   \   00000B   22           RET
    404          
    405          
    406          /**************************************************************************************************
    407           * @fn          macMcuOverflowSetCompare
    408           *
    409           * @brief       Set overflow count compare value.  An interrupt is triggered when the overflow
    410           *              count equals this compare value.

⌨️ 快捷键说明

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