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

📄 hal_timer.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \                     ??CrossCallReturnLabel_2:
   \   000067   90....       MOV     DPTR,#(??halTimerChannel + 6)
   \   00006A   74D8         MOV     A,#-0x28
   \   00006C   12....       LCALL   ??Subroutine0_0 & 0xFFFF
    242            halTimerChannel[HW_TIMER_1].ovfbit =  TCHN_T1OVFBIT;
   \                     ??CrossCallReturnLabel_3:
   \   00006F   7440         MOV     A,#0x40
   \   000071   90....       MOV     DPTR,#(??halTimerChannel + 8)
   \   000074   F0           MOVX    @DPTR,A
    243            halTimerChannel[HW_TIMER_1].intbit =  TCHN_T1INTBIT;
   \   000075   7402         MOV     A,#0x2
   \   000077   90....       MOV     DPTR,#(??halTimerChannel + 9)
   \   00007A   F0           MOVX    @DPTR,A
    244          
    245            /* Setup Timer3 Channel structure */
    246            halTimerChannel[HW_TIMER_3].TxCCTL =  TCHN_T3CCTL;
   \   00007B   90....       MOV     DPTR,#(??halTimerChannel + 10)
   \   00007E   74CC         MOV     A,#-0x34
   \   000080   12....       LCALL   ??Subroutine0_0 & 0xFFFF
    247            halTimerChannel[HW_TIMER_3].TxCCL =   TCHN_T3CCL;
   \                     ??CrossCallReturnLabel_4:
   \   000083   90....       MOV     DPTR,#(??halTimerChannel + 14)
   \   000086   12....       LCALL   ?Subroutine0 & 0xFFFF
    248            halTimerChannel[HW_TIMER_3].TxCCH =   TCHN_T3CCH;
   \                     ??CrossCallReturnLabel_5:
   \   000089   90....       MOV     DPTR,#(??halTimerChannel + 12)
   \   00008C   12....       LCALL   ?Subroutine0 & 0xFFFF
    249            halTimerChannel[HW_TIMER_3].TxOVF =   TCNH_T3OVF;
   \                     ??CrossCallReturnLabel_6:
   \   00008F   90....       MOV     DPTR,#(??halTimerChannel + 16)
   \   000092   74CB         MOV     A,#-0x35
   \   000094   12....       LCALL   ??Subroutine0_0 & 0xFFFF
    250            halTimerChannel[HW_TIMER_3].ovfbit =  TCHN_T3OVFBIT;
   \                     ??CrossCallReturnLabel_7:
   \   000097   7480         MOV     A,#-0x80
   \   000099   90....       MOV     DPTR,#(??halTimerChannel + 18)
   \   00009C   F0           MOVX    @DPTR,A
    251            halTimerChannel[HW_TIMER_3].intbit =  TCHN_T3INTBIT;
   \   00009D   7408         MOV     A,#0x8
   \   00009F   90....       MOV     DPTR,#(??halTimerChannel + 19)
   \   0000A2   F0           MOVX    @DPTR,A
    252          
    253            /* Setup Timer4 Channel structure */
    254            halTimerChannel[HW_TIMER_4].TxCCTL =  TCHN_T4CCTL;
   \   0000A3   90....       MOV     DPTR,#(??halTimerChannel + 20)
   \   0000A6   74EC         MOV     A,#-0x14
   \   0000A8   12....       LCALL   ??Subroutine0_0 & 0xFFFF
    255            halTimerChannel[HW_TIMER_4].TxCCL =   TCHN_T4CCL;
   \                     ??CrossCallReturnLabel_8:
   \   0000AB   90....       MOV     DPTR,#(??halTimerChannel + 24)
   \   0000AE   74ED         MOV     A,#-0x13
   \   0000B0   12....       LCALL   ??Subroutine0_0 & 0xFFFF
    256            halTimerChannel[HW_TIMER_4].TxCCH =   TCHN_T4CCH;
   \                     ??CrossCallReturnLabel_9:
   \   0000B3   90....       MOV     DPTR,#(??halTimerChannel + 22)
   \   0000B6   74ED         MOV     A,#-0x13
   \   0000B8   12....       LCALL   ??Subroutine0_0 & 0xFFFF
    257            halTimerChannel[HW_TIMER_4].TxOVF =   TCNH_T4OVF;
   \                     ??CrossCallReturnLabel_10:
   \   0000BB   90....       MOV     DPTR,#(??halTimerChannel + 26)
   \   0000BE   74EB         MOV     A,#-0x15
   \   0000C0   12....       LCALL   ??Subroutine0_0 & 0xFFFF
    258            halTimerChannel[HW_TIMER_4].ovfbit =  TCHN_T4OVFBIT;
   \                     ??CrossCallReturnLabel_11:
   \   0000C3   7480         MOV     A,#-0x80
   \   0000C5   90....       MOV     DPTR,#(??halTimerChannel + 28)
   \   0000C8   F0           MOVX    @DPTR,A
    259            halTimerChannel[HW_TIMER_4].intbit =  TCHN_T4INTBIT;
   \   0000C9   7410         MOV     A,#0x10
   \   0000CB   90....       MOV     DPTR,#(??halTimerChannel + 29)
   \   0000CE   F0           MOVX    @DPTR,A
    260          }
   \   0000CF   02....       LJMP    ?Subroutine13 & 0xFFFF

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   74CD         MOV     A,#-0x33
   \                     ??Subroutine0_0:
   \   000002   F0           MOVX    @DPTR,A
   \   000003   A3           INC     DPTR
   \   000004   74DF         MOV     A,#-0x21
   \   000006   F0           MOVX    @DPTR,A
   \   000007   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine13:
   \   000000   D083         POP     DPH
   \   000002   D082         POP     DPL
   \   000004   02....       LJMP    ?BRET
    261          
    262          /***************************************************************************************************
    263           * @fn      HalTimerConfig
    264           *
    265           * @brief   Configure the Timer Serivce
    266           *
    267           * @param   timerId - Id of the timer
    268           *          opMode  - Operation mode
    269           *          channel - Channel where the counter operates on
    270           *          channelMode - Mode of that channel
    271           *          prescale - Prescale of the clock
    272           *          cBack - Pointer to the callback function
    273           *
    274           * @return  Status of the configuration
    275           ***************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    276          uint8 HalTimerConfig (uint8 timerId, uint8 opMode, uint8 channel, uint8 channelMode,
   \                     HalTimerConfig:
    277                                bool intEnable, halTimerCBack_t cBack)
    278          {
   \   000000   74F1         MOV     A,#-0xf
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 15
   \   000005                ; Auto size: 0
   \   000005   E9           MOV     A,R1
   \   000006   FE           MOV     R6,A
   \   000007   EA           MOV     A,R2
   \   000008   FF           MOV     R7,A
   \   000009   8B..         MOV     ?V0 + 0,R3
   \   00000B   8C..         MOV     ?V0 + 1,R4
   \   00000D   8D..         MOV     ?V0 + 2,R5
   \   00000F   740F         MOV     A,#0xf
   \   000011   12....       LCALL   ?XSTACK_DISP0_8
   \   000014   E0           MOVX    A,@DPTR
   \   000015   F9           MOV     R1,A
   \   000016   A3           INC     DPTR
   \   000017   E0           MOVX    A,@DPTR
   \   000018   FA           MOV     R2,A
   \   000019   A3           INC     DPTR
   \   00001A   E0           MOVX    A,@DPTR
   \   00001B   FB           MOV     R3,A
   \   00001C   89..         MOV     ?V0 + 4,R1
   \   00001E   8A..         MOV     ?V0 + 5,R2
   \   000020   8B..         MOV     ?V0 + 6,R3
    279            uint8 hwtimerid;
    280          
    281            hwtimerid = halTimerRemap (timerId);
   \   000022                ; Setup parameters for call to function halTimerRemap
   \   000022   EE           MOV     A,R6
   \   000023   F9           MOV     R1,A
   \   000024   90....       MOV     DPTR,#(halTimerRemap & 0xffff)
   \   000027   74..         MOV     A,#((halTimerRemap >> 16) & 0xff)
   \   000029   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00002C   E9           MOV     A,R1
   \   00002D   FA           MOV     R2,A
    282          
    283            if ((opMode & HAL_TIMER_MODE_MASK) && (timerId < HAL_TIMER_MAX) &&
    284                (channelMode & HAL_TIMER_CHANNEL_MASK) && (channel & HAL_TIMER_CHANNEL_MASK))
   \   00002E   7403         MOV     A,#0x3
   \   000030   5F           ANL     A,R7
   \   000031   6051         JZ      ??HalTimerConfig_0
   \   000033   EE           MOV     A,R6
   \   000034   C3           CLR     C
   \   000035   9404         SUBB    A,#0x4
   \   000037   504B         JNC     ??HalTimerConfig_0
   \   000039   740F         MOV     A,#0xf
   \   00003B   55..         ANL     A,?V0 + 1
   \   00003D   6045         JZ      ??HalTimerConfig_0
   \   00003F   740F         MOV     A,#0xf
   \   000041   55..         ANL     A,?V0 + 0
   \   000043   603F         JZ      ??HalTimerConfig_0
    285            {
    286              halTimerRecord[hwtimerid].configured    = TRUE;
   \   000045   EA           MOV     A,R2
   \   000046   75F00B       MOV     B,#0xb
   \   000049   A4           MUL     AB
   \   00004A   24..         ADD     A,#(??halTimerRecord & 0xff)
   \   00004C   F8           MOV     R0,A
   \   00004D   E5F0         MOV     A,B
   \   00004F   34..         ADDC    A,#((??halTimerRecord >> 8) & 0xff)
   \   000051   F9           MOV     R1,A
   \   000052   7401         MOV     A,#0x1
   \   000054   8882         MOV     DPL,R0
   \   000056   8983         MOV     DPH,R1
   \   000058   F0           MOVX    @DPTR,A
    287              halTimerRecord[hwtimerid].opMode        = opMode;
   \   000059   EF           MOV     A,R7
   \   00005A   A3           INC     DPTR
   \   00005B   A3           INC     DPTR
   \   00005C   12....       LCALL   ?Subroutine11 & 0xFFFF
    288              halTimerRecord[hwtimerid].channel       = channel;
   \                     ??CrossCallReturnLabel_38:
   \   00005F   E5..         MOV     A,?V0 + 0
   \   000061   12....       LCALL   ?Subroutine1 & 0xFFFF
    289              halTimerRecord[hwtimerid].channelMode   = channelMode;
   \                     ??CrossCallReturnLabel_12:
   \   000064   E5..         MOV     A,?V0 + 1
   \   000066   F0           MOVX    @DPTR,A
    290              halTimerRecord[hwtimerid].intEnable     = intEnable;
   \   000067   8882         MOV     DPL,R0
   \   000069   8983         MOV     DPH,R1
   \   00006B   A3           INC     DPTR
   \   00006C   E5..         MOV     A,?V0 + 2
   \   00006E   12....       LCALL   ?Subroutine1 & 0xFFFF
    291              halTimerRecord[hwtimerid].callBackFunc  = cBack;
   \                     ??CrossCallReturnLabel_13:
   \   000071   A3           INC     DPTR
   \   000072   A3           INC     DPTR
   \   000073   A3           INC     DPTR
   \   000074   A3           INC     DPTR
   \   000075   E5..         MOV     A,?V0 + 4
   \   000077   F0           MOVX    @DPTR,A
   \   000078   A3           INC     DPTR
   \   000079   E5..         MOV     A,?V0 + 5
   \   00007B   F0           MOVX    @DPTR,A
   \   00007C   A3           INC     DPTR
   \   00007D   E5..         MOV     A,?V0 + 6
   \   00007F   F0           MOVX    @DPTR,A
    292            }
    293            else
    294            {
    295              return HAL_TIMER_PARAMS_ERROR;
    296            }
    297            return HAL_TIMER_OK;
   \   000080   7900         MOV     R1,#0x0
   \   000082   8002         SJMP    ??HalTimerConfig_1
   \                     ??HalTimerConfig_0:
   \   000084   7902         MOV     R1,#0x2
   \                     ??HalTimerConfig_1:
   \   000086   7F07         MOV     R7,#0x7
   \   000088   02....       LJMP    ?BANKED_LEAVE_XDATA
    298          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine1:
   \   000000   12....       LCALL   ?Subroutine11 & 0xFFFF
   \                     ??CrossCallReturnLabel_39:
   \   000003   A3           INC     DPTR
   \   000004   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine11:
   \   000000   F0           MOVX    @DPTR,A
   \   000001   8882         MOV     DPL,R0
   \   000003   8983         MOV     DPH,R1
   \   000005   A3           INC     DPTR
   \   000006   A3           INC     DPTR
   \   000007   A3           INC     DPTR
   \   000008   22           RET
    299          
    300          
    301          /***************************************************************************************************
    302           * @fn      HalTimerStart

⌨️ 快捷键说明

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