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

📄 stm32f10x_tim.txt

📁 stm32 ucos 精简移殖版本 不需作任何修改直接便可运行。包含串口 定时器
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                          ENDP

                  TIM_ICInit PROC
;;;587    void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
;;;588    {
000396  b530              PUSH     {r4,r5,lr}
000398  4605              MOV      r5,r0
00039a  460c              MOV      r4,r1
;;;589      /* Check the parameters */
;;;590      assert_param(IS_TIM_123458_PERIPH(TIMx));
;;;591      assert_param(IS_TIM_CHANNEL(TIM_ICInitStruct->TIM_Channel));
;;;592      assert_param(IS_TIM_IC_POLARITY(TIM_ICInitStruct->TIM_ICPolarity));
;;;593      assert_param(IS_TIM_IC_SELECTION(TIM_ICInitStruct->TIM_ICSelection));
;;;594      assert_param(IS_TIM_IC_PRESCALER(TIM_ICInitStruct->TIM_ICPrescaler));
;;;595      assert_param(IS_TIM_IC_FILTER(TIM_ICInitStruct->TIM_ICFilter));
;;;596      
;;;597      if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
00039c  8820              LDRH     r0,[r4,#0]
00039e  8861              LDRH     r1,[r4,#2]
0003a0  88a2              LDRH     r2,[r4,#4]
0003a2  8923              LDRH     r3,[r4,#8]
0003a4  b938              CBNZ     r0,|L1.950|
;;;598      {
;;;599        /* TI1 Configuration */
;;;600        TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
0003a6  4628              MOV      r0,r5
0003a8  f7fff7ff          BL       TI1_Config
;;;601                   TIM_ICInitStruct->TIM_ICSelection,
;;;602                   TIM_ICInitStruct->TIM_ICFilter);
;;;603    
;;;604        /* Set the Input Capture Prescaler value */
;;;605        TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0003ac  88e1              LDRH     r1,[r4,#6]
0003ae  4628              MOV      r0,r5
0003b0  e8bde8bd          POP      {r4,r5,lr}
0003b4  e7fe              B        TIM_SetIC1Prescaler
                  |L1.950|
;;;606      }
;;;607      else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2)
0003b6  2804              CMP      r0,#4
0003b8  d107              BNE      |L1.970|
;;;608      {
;;;609        /* TI2 Configuration */
;;;610        TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
0003ba  4628              MOV      r0,r5
0003bc  f7fff7ff          BL       TI2_Config
;;;611                   TIM_ICInitStruct->TIM_ICSelection,
;;;612                   TIM_ICInitStruct->TIM_ICFilter);
;;;613    
;;;614        /* Set the Input Capture Prescaler value */
;;;615        TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0003c0  88e1              LDRH     r1,[r4,#6]
0003c2  4628              MOV      r0,r5
0003c4  e8bde8bd          POP      {r4,r5,lr}
0003c8  e7fe              B        TIM_SetIC2Prescaler
                  |L1.970|
;;;616      }
;;;617      else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_3)
0003ca  2808              CMP      r0,#8
0003cc  d107              BNE      |L1.990|
;;;618      {
;;;619        /* TI3 Configuration */
;;;620        TI3_Config(TIMx,  TIM_ICInitStruct->TIM_ICPolarity,
0003ce  4628              MOV      r0,r5
0003d0  f7fff7ff          BL       TI3_Config
;;;621                   TIM_ICInitStruct->TIM_ICSelection,
;;;622                   TIM_ICInitStruct->TIM_ICFilter);
;;;623    
;;;624        /* Set the Input Capture Prescaler value */
;;;625        TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0003d4  88e1              LDRH     r1,[r4,#6]
0003d6  4628              MOV      r0,r5
0003d8  e8bde8bd          POP      {r4,r5,lr}
0003dc  e7fe              B        TIM_SetIC3Prescaler
                  |L1.990|
;;;626      }
;;;627      else
;;;628      {
;;;629        /* TI4 Configuration */
;;;630        TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
0003de  4628              MOV      r0,r5
0003e0  f7fff7ff          BL       TI4_Config
;;;631                   TIM_ICInitStruct->TIM_ICSelection,
;;;632                   TIM_ICInitStruct->TIM_ICFilter);
;;;633    
;;;634        /* Set the Input Capture Prescaler value */
;;;635        TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0003e4  88e1              LDRH     r1,[r4,#6]
0003e6  4628              MOV      r0,r5
0003e8  e8bde8bd          POP      {r4,r5,lr}
0003ec  e7fe              B        TIM_SetIC4Prescaler
0003ee  0000              DCW      0x0000
                  |L1.1008|
0003f0  40001000          DCD      0x40001000
                  |L1.1012|
0003f4  bffffc00          DCD      0xbffffc00
                  |L1.1016|
0003f8  40012c00          DCD      0x40012c00
                  |L1.1020|
0003fc  40013400          DCD      0x40013400
                          ENDP

                  TIM_PWMIConfig PROC
;;;652    void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
;;;653    {
000400  b5f0              PUSH     {r4-r7,lr}
000402  4607              MOV      r7,r0
000404  460c              MOV      r4,r1
;;;654      u16 icoppositepolarity = TIM_ICPolarity_Rising;
000406  2500              MOVS     r5,#0
;;;655      u16 icoppositeselection = TIM_ICSelection_DirectTI;
000408  2601              MOVS     r6,#1
;;;656    
;;;657      /* Check the parameters */
;;;658      assert_param(IS_TIM_123458_PERIPH(TIMx));
;;;659    
;;;660      /* Select the Opposite Input Polarity */
;;;661      if (TIM_ICInitStruct->TIM_ICPolarity == TIM_ICPolarity_Rising)
00040a  8861              LDRH     r1,[r4,#2]
00040c  b901              CBNZ     r1,|L1.1040|
;;;662      {
;;;663        icoppositepolarity = TIM_ICPolarity_Falling;
00040e  2502              MOVS     r5,#2
                  |L1.1040|
;;;664      }
;;;665      else
;;;666      {
;;;667        icoppositepolarity = TIM_ICPolarity_Rising;
;;;668      }
;;;669    
;;;670      /* Select the Opposite Input */
;;;671      if (TIM_ICInitStruct->TIM_ICSelection == TIM_ICSelection_DirectTI)
000410  88a2              LDRH     r2,[r4,#4]
000412  2a01              CMP      r2,#1
000414  d100              BNE      |L1.1048|
;;;672      {
;;;673        icoppositeselection = TIM_ICSelection_IndirectTI;
000416  2602              MOVS     r6,#2
                  |L1.1048|
;;;674      }
;;;675      else
;;;676      {
;;;677        icoppositeselection = TIM_ICSelection_DirectTI;
;;;678      }
;;;679    
;;;680      if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
000418  8820              LDRH     r0,[r4,#0]
00041a  8923              LDRH     r3,[r4,#8]
00041c  b988              CBNZ     r0,|L1.1090|
;;;681      {
;;;682        /* TI1 Configuration */
;;;683        TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection,
00041e  4638              MOV      r0,r7
000420  f7fff7ff          BL       TI1_Config
;;;684                   TIM_ICInitStruct->TIM_ICFilter);
;;;685    
;;;686        /* Set the Input Capture Prescaler value */
;;;687        TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000424  88e1              LDRH     r1,[r4,#6]
000426  4638              MOV      r0,r7
000428  f7fff7ff          BL       TIM_SetIC1Prescaler
;;;688    
;;;689        /* TI2 Configuration */
;;;690        TI2_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter);
00042c  8923              LDRH     r3,[r4,#8]
00042e  4632              MOV      r2,r6
000430  4629              MOV      r1,r5
000432  4638              MOV      r0,r7
000434  f7fff7ff          BL       TI2_Config
;;;691    
;;;692        /* Set the Input Capture Prescaler value */
;;;693        TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000438  88e1              LDRH     r1,[r4,#6]
00043a  4638              MOV      r0,r7
00043c  e8bde8bd          POP      {r4-r7,lr}
000440  e7fe              B        TIM_SetIC2Prescaler
                  |L1.1090|
;;;694      }
;;;695      else
;;;696      { 
;;;697        /* TI2 Configuration */
;;;698        TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection,
000442  4638              MOV      r0,r7
000444  f7fff7ff          BL       TI2_Config
;;;699                   TIM_ICInitStruct->TIM_ICFilter);
;;;700    
;;;701        /* Set the Input Capture Prescaler value */
;;;702        TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000448  88e1              LDRH     r1,[r4,#6]
00044a  4638              MOV      r0,r7
00044c  f7fff7ff          BL       TIM_SetIC2Prescaler
;;;703    
;;;704        /* TI1 Configuration */
;;;705        TI1_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter);
000450  8923              LDRH     r3,[r4,#8]
000452  4632              MOV      r2,r6
000454  4629              MOV      r1,r5
000456  4638              MOV      r0,r7
000458  f7fff7ff          BL       TI1_Config
;;;706    
;;;707        /* Set the Input Capture Prescaler value */
;;;708        TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
00045c  88e1              LDRH     r1,[r4,#6]
00045e  4638              MOV      r0,r7
000460  e8bde8bd          POP      {r4-r7,lr}
000464  e7fe              B        TIM_SetIC1Prescaler
;;;709      }
;;;710    }
;;;711    
                          ENDP

                  TIM_BDTRConfig PROC
;;;723    void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct)
;;;724    {
000466  b510              PUSH     {r4,lr}
;;;725      /* Check the parameters */
;;;726      assert_param(IS_TIM_18_PERIPH(TIMx));
;;;727      assert_param(IS_TIM_OSSR_STATE(TIM_BDTRInitStruct->TIM_OSSRState));
;;;728      assert_param(IS_TIM_OSSI_STATE(TIM_BDTRInitStruct->TIM_OSSIState));
;;;729      assert_param(IS_TIM_LOCK_LEVEL(TIM_BDTRInitStruct->TIM_LOCKLevel));
;;;730      assert_param(IS_TIM_BREAK_STATE(TIM_BDTRInitStruct->TIM_Break));
;;;731      assert_param(IS_TIM_BREAK_POLARITY(TIM_BDTRInitStruct->TIM_BreakPolarity));
;;;732      assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(TIM_BDTRInitStruct->TIM_AutomaticOutput));
;;;733    
;;;734      /* Set the Lock level, the Break enable Bit and the Ploarity, the OSSR State,
;;;735         the OSSI State, the dead time value and the Automatic Output Enable Bit */
;;;736    
;;;737      TIMx->BDTR = (u32)TIM_BDTRInitStruct->TIM_OSSRState | TIM_BDTRInitStruct->TIM_OSSIState |
000468  880a              LDRH     r2,[r1,#0]
00046a  884b              LDRH     r3,[r1,#2]
00046c  88cc              LDRH     r4,[r1,#6]
00046e  431a              ORRS     r2,r2,r3
000470  888b              LDRH     r3,[r1,#4]
000472  4323              ORRS     r3,r3,r4
000474  431a              ORRS     r2,r2,r3
000476  890b              LDRH     r3,[r1,#8]
000478  431a              ORRS     r2,r2,r3
00047a  894b              LDRH     r3,[r1,#0xa]
00047c  8989              LDRH     r1,[r1,#0xc]
00047e  431a              ORRS     r2,r2,r3
000480  430a              ORRS     r2,r2,r1
000482  f8a0f8a0          STRH     r2,[r0,#0x44]
;;;738                 TIM_BDTRInitStruct->TIM_LOCKLevel | TIM_BDTRInitStruct->TIM_DeadTime |
;;;739                 TIM_BDTRInitStruct->TIM_Break | TIM_BDTRInitStruct->TIM_BreakPolarity |
;;;740                 TIM_BDTRInitStruct->TIM_AutomaticOutput;
;;;741    
;;;742    }
000486  bd10              POP      {r4,pc}
;;;743    
                          ENDP

                  TIM_TimeBaseStructInit PROC
;;;754      /* Set the default configuration */
;;;755      TIM_TimeBaseInitStruct->TIM_Period = 0xFFFF;
000488  f64ff64f          MOV      r1,#0xffff
00048c  8081              STRH     r1,[r0,#4]
;;;756      TIM_TimeBaseInitStruct->TIM_Prescaler = 0x0000;
00048e  2100              MOVS     r1,#0
000490  8001              STRH     r1,[r0,#0]
;;;757      TIM_TimeBaseInitStruct->TIM_ClockDivision = TIM_CKD_DIV1;
000492  80c1              STRH     r1,[r0,#6]
;;;758      TIM_TimeBaseInitStruct->TIM_CounterMode = TIM_CounterMode_Up;
000494  8041              STRH     r1,[r0,#2]
;;;759      TIM_TimeBaseInitStruct->TIM_RepetitionCounter = 0x0000;
000496  7201              STRB     r1,[r0,#8]
;;;760    }
000498  4770              BX       lr
;;;761    
                          ENDP

                  TIM_OCStructInit PROC
;;;772      /* Set the default configuration */
;;;773      TIM_OCInitStruct->TIM_OCMode = TIM_OCMode_Timing;
00049a  2100              MOVS     r1,#0
00049c  8001              STRH     r1,[r0,#0]
;;;774      TIM_OCInitStruct->TIM_OutputState = TIM_OutputState_Disable;
00049e  8041              STRH     r1,[r0,#2]
;;;775      TIM_OCInitStruct->TIM_OutputNState = TIM_OutputNState_Disable;
0004a0  8081              STRH     r1,[r0,#4]
;;;776      TIM_OCInitStruct->TIM_Pulse = 0x0000;
0004a2  80c1              STRH     r1,[r0,#6]
;;;777      TIM_OCInitStruct->TIM_OCPolarity = TIM_OCPolarity_High;
0004a4  8101              STRH     r1,[r0,#8]
;;;778      TIM_OCInitStruct->TIM_OCNPolarity = TIM_OCPolarity_High;
0004a6  8141              STRH     r1,[r0,#0xa]
;;;779      TIM_OCInitStruct->TIM_OCIdleState = TIM_OCIdleState_Reset;
0004a8  8181              STRH     r1,[r0,#0xc]
;;;780      TIM_OCInitStruct->TIM_OCNIdleState = TIM_OCNIdleState_Reset;
0004aa  81c1              STRH     r1,[r0,#0xe]
;;;781    }
0004ac  4770              BX       lr
;;;782    
                          ENDP

                  TIM_ICStructInit PROC
;;;793      /* Set the default configuration */
;;;794      TIM_ICInitStruct->TIM_Channel = TIM_Channel_1;
0004ae  2100              MOVS     r1,#0
0004b0  8001              STRH     r1,[r0,#0]
;;;795      TIM_ICInitStruct->TIM_ICPolarity = TIM_ICPolarity_Rising;
0004b2  8041              STRH     r1,[r0,#2]
;;;796      TIM_ICInitStruct->TIM_ICSelection = TIM_ICSelection_DirectTI;
0004b4  2201              MOVS     r2,#1
0004b6  8082              STRH     r2,[r0,#4]
;;;797      TIM_ICInitStruct->TIM_ICPrescaler = TIM_ICPSC_DIV1;
0004b8  80c1              STRH     r1,[r0,#6]
;;;798      TIM_ICInitStruct->TIM_ICFilter = 0x00;

⌨️ 快捷键说明

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