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

📄 stm32f10x_timebase.s79

📁 STM32利用正交编码器实现电机的控制
💻 S79
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.42A/W32              15/May/2008  12:06:29 /
// Copyright 1999-2005 IAR Systems. All rights reserved.                     /
//                                                                           /
//    Cpu mode        =  thumb                                               /
//    Endian          =  little                                              /
//    Stack alignment =  4                                                   /
//    Source file     =  C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM       /
//                       Encoder\example\project\source\stm32f10x_Timebase.c /
//    Command line    =  "C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM      /
//                       Encoder\example\project\source\stm32f10x_Timebase.c /
//                       " -D VECT_TAB_FLASH -lcN "C:\David JIANG\ST         /
//                       MCU\Docs\STM32\AN_JIANG\TIM                         /
//                       Encoder\example\project\EWARM\BOOT_FLASH\List\"     /
//                       -lb "C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM  /
//                       Encoder\example\project\EWARM\BOOT_FLASH\List\" -o  /
//                       "C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM      /
//                       Encoder\example\project\EWARM\BOOT_FLASH\Obj\" -z3  /
//                       --no_cse --no_unroll --no_inline --no_code_motion   /
//                       --no_tbaa --no_clustering --no_scheduling --debug   /
//                       --cpu_mode thumb --endian little --cpu cortex-M3    /
//                       --stack_align 4 --require_prototypes --fpu None     /
//                       --dlib_config "C:\Program Files\IAR                 /
//                       Systems\Embedded Workbench                          /
//                       4.0\arm\LIB\dl7mptnnl8f.h" -I "C:\David JIANG\ST    /
//                       MCU\Docs\STM32\AN_JIANG\TIM                         /
//                       Encoder\example\project\EWARM\" -I "C:\David        /
//                       JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM                /
//                       Encoder\example\project\EWARM\..\include\" -I       /
//                       "C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM      /
//                       Encoder\example\project\EWARM\..\..\FWLib\inc\" -I  /
//                       "C:\Program Files\IAR Systems\Embedded Workbench    /
//                       4.0\arm\INC\"                                       /
//    List file       =  C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM       /
//                       Encoder\example\project\EWARM\BOOT_FLASH\List\stm32 /
//                       f10x_Timebase.s79                                   /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME stm32f10x_Timebase

        RSEG CSTACK:DATA:NOROOT(2)

        PUBWEAK `?*?DATA_ID`
??DataTable0 EQU 0
??DataTable1 EQU 0
??DataTable2 EQU 0
??DataTable3 EQU 0
        MULTWEAK ??ENC_Calc_Average_Speed??rT
        MULTWEAK ??NVIC_SystemHandlerPriorityConfig??rT
        MULTWEAK ??SysTick_CLKSourceConfig??rT
        MULTWEAK ??SysTick_CounterCmd??rT
        MULTWEAK ??SysTick_ITConfig??rT
        MULTWEAK ??SysTick_SetReload??rT
        PUBWEAK ?init?tab?DATA_I
        PUBWEAK ?init?tab?DATA_Z
        PUBLIC SysTickHandler
        PUBLIC TB_DisplayDelay_IsElapsed
        PUBLIC TB_Init
        PUBLIC TB_Set_DisplayDelay_500us

ENC_Calc_Average_Speed SYMBOL "ENC_Calc_Average_Speed"
NVIC_SystemHandlerPriorityConfig SYMBOL "NVIC_SystemHandlerPriorityConfig"
SysTick_CLKSourceConfig SYMBOL "SysTick_CLKSourceConfig"
SysTick_CounterCmd  SYMBOL "SysTick_CounterCmd"
SysTick_ITConfig    SYMBOL "SysTick_ITConfig"
SysTick_SetReload   SYMBOL "SysTick_SetReload"
??ENC_Calc_Average_Speed??rT SYMBOL "??rT", ENC_Calc_Average_Speed
??NVIC_SystemHandlerPriorityConfig??rT SYMBOL "??rT", NVIC_SystemHandlerPriorityConfig
??SysTick_CLKSourceConfig??rT SYMBOL "??rT", SysTick_CLKSourceConfig
??SysTick_CounterCmd??rT SYMBOL "??rT", SysTick_CounterCmd
??SysTick_ITConfig??rT SYMBOL "??rT", SysTick_ITConfig
??SysTick_SetReload??rT SYMBOL "??rT", SysTick_SetReload

        EXTERN ENC_Calc_Average_Speed
        EXTERN NVIC_SystemHandlerPriorityConfig
        EXTERN SysTick_CLKSourceConfig
        EXTERN SysTick_CounterCmd
        EXTERN SysTick_ITConfig
        EXTERN SysTick_SetReload


        RSEG DATA_Z:DATA:SORT:NOROOT(1)
hTimebase_display_500us:
        DS8 2

        RSEG DATA_I:DATA:SORT:NOROOT(1)
hSpeedMeas_Timebase_500us:
        DS8 2
        REQUIRE `?<Initializer for hSpeedMeas_Timebase_500us>`

        RSEG CODE:CODE:NOROOT(2)
        THUMB
TB_Init:
        PUSH     {LR}
        MOVS     R0,#+4
        _BLF     SysTick_CLKSourceConfig,??SysTick_CLKSourceConfig??rT
        LDR.N    R0,??TB_Init_0   ;; 0x8ca0
        _BLF     SysTick_SetReload,??SysTick_SetReload??rT
        MOVS     R0,#+1
        _BLF     SysTick_CounterCmd,??SysTick_CounterCmd??rT
        MOVS     R2,#+0
        MOVS     R1,#+2
        LDR.N    R0,??TB_Init_0+0x4  ;; 0x2c39a
        _BLF     NVIC_SystemHandlerPriorityConfig,??NVIC_SystemHandlerPriorityConfig??rT
        MOVS     R0,#+1
        _BLF     SysTick_ITConfig,??SysTick_ITConfig??rT
        POP      {PC}             ;; return
        Nop      
        DATA
??TB_Init_0:
        DC32     0x8ca0
        DC32     0x2c39a

        RSEG CODE:CODE:NOROOT(2)
        THUMB
TB_Set_DisplayDelay_500us:
        LDR.N    R1,??DataTable4  ;; hTimebase_display_500us
        STRH     R0,[R1, #+0]
        BX       LR               ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
TB_DisplayDelay_IsElapsed:
        LDR.N    R0,??DataTable4  ;; hTimebase_display_500us
        LDRH     R0,[R0, #+0]
        CMP      R0,#+0
        BNE.N    ??TB_DisplayDelay_IsElapsed_0
        MOVS     R0,#+1
        B.N      ??TB_DisplayDelay_IsElapsed_1
??TB_DisplayDelay_IsElapsed_0:
        MOVS     R0,#+0
??TB_DisplayDelay_IsElapsed_1:
        BX       LR               ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
SysTickHandler:
        PUSH     {LR}
        LDR.N    R0,??DataTable4  ;; hTimebase_display_500us
        LDRH     R0,[R0, #+0]
        CMP      R0,#+0
        BEQ.N    ??SysTickHandler_0
        LDR.N    R0,??DataTable4  ;; hTimebase_display_500us
        LDR.N    R1,??DataTable4  ;; hTimebase_display_500us
        LDRH     R1,[R1, #+0]
        SUBS     R1,R1,#+1
        STRH     R1,[R0, #+0]
??SysTickHandler_0:
        LDR.N    R0,??SysTickHandler_1  ;; hSpeedMeas_Timebase_500us
        LDRH     R0,[R0, #+0]
        CMP      R0,#+0
        BEQ.N    ??SysTickHandler_2
        LDR.N    R0,??SysTickHandler_1  ;; hSpeedMeas_Timebase_500us
        LDR.N    R1,??SysTickHandler_1  ;; hSpeedMeas_Timebase_500us
        LDRH     R1,[R1, #+0]
        SUBS     R1,R1,#+1
        STRH     R1,[R0, #+0]
        B.N      ??SysTickHandler_3
??SysTickHandler_2:
        LDR.N    R0,??SysTickHandler_1  ;; hSpeedMeas_Timebase_500us
        MOVS     R1,#+9
        STRH     R1,[R0, #+0]
        _BLF     ENC_Calc_Average_Speed,??ENC_Calc_Average_Speed??rT
??SysTickHandler_3:
        POP      {PC}             ;; return
        DATA
??SysTickHandler_1:
        DC32     hSpeedMeas_Timebase_500us

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable4:
        DC32     hTimebase_display_500us

        RSEG CODE:CODE:NOROOT(2)
        THUMB
??SysTick_CLKSourceConfig??rT:
        LDR.N    R3,??Subroutine0_0  ;; SysTick_CLKSourceConfig
        BX       R3
        DATA
??Subroutine0_0:
        DC32     SysTick_CLKSourceConfig

        RSEG CODE:CODE:NOROOT(2)
        THUMB
??SysTick_SetReload??rT:
        LDR.N    R3,??Subroutine1_0  ;; SysTick_SetReload
        BX       R3
        DATA
??Subroutine1_0:
        DC32     SysTick_SetReload

        RSEG CODE:CODE:NOROOT(2)
        THUMB
??SysTick_CounterCmd??rT:
        LDR.N    R3,??Subroutine2_0  ;; SysTick_CounterCmd
        BX       R3
        DATA
??Subroutine2_0:
        DC32     SysTick_CounterCmd

        RSEG CODE:CODE:NOROOT(2)
        THUMB
??NVIC_SystemHandlerPriorityConfig??rT:
        LDR.N    R3,??Subroutine3_0  ;; NVIC_SystemHandlerPriorityConfig
        BX       R3
        DATA
??Subroutine3_0:
        DC32     NVIC_SystemHandlerPriorityConfig

        RSEG CODE:CODE:NOROOT(2)
        THUMB
??SysTick_ITConfig??rT:
        LDR.N    R3,??Subroutine4_0  ;; SysTick_ITConfig
        BX       R3
        DATA
??Subroutine4_0:
        DC32     SysTick_ITConfig

        RSEG CODE:CODE:NOROOT(2)
        THUMB
??ENC_Calc_Average_Speed??rT:
        LDR.N    R3,??Subroutine5_0  ;; ENC_Calc_Average_Speed
        BX       R3
        DATA
??Subroutine5_0:
        DC32     ENC_Calc_Average_Speed

        RSEG DATA_ID:CONST:SORT:NOROOT(1)
`?<Initializer for hSpeedMeas_Timebase_500us>`:
        DATA
        DC16 9

        RSEG DATA_ID:CONST:SORT:NOROOT(2)
`?*?DATA_ID`:

        RSEG INITTAB:CODE:ROOT(2)
        DATA
?init?tab?DATA_I:
        DCD      sfe(DATA_I) - sfb(DATA_I), sfb(DATA_I), sfb(DATA_ID)

        RSEG INITTAB:CODE:ROOT(2)
        DATA
?init?tab?DATA_Z:
        DCD      sfe(DATA_Z) - sfb(DATA_Z), sfb(DATA_Z), sfb(DATA_Z)

        END
// 
// 178 bytes in segment CODE
//   2 bytes in segment DATA_I
//   2 bytes in segment DATA_ID
//   2 bytes in segment DATA_Z
//  24 bytes in segment INITTAB
// 
// 130 bytes of CODE  memory (+ 72 bytes shared)
//   2 bytes of CONST memory
//   4 bytes of DATA  memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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