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

📄 stm32f10x_tim.txt

📁 针对STM32F103的UCOS移植
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;318      assert(IS_TIM_IC_SELECTION(TIM_ICInitStruct->TIM_ICSelection));
;;;319      assert(IS_TIM_IC_PRESCALER(TIM_ICInitStruct->TIM_ICPrescaler));
;;;320      assert(IS_TIM_IC_FILTER(TIM_ICInitStruct->TIM_ICFilter));
;;;321      
;;;322      if (TIM_ICInitStruct->TIM_ICMode == TIM_ICMode_ICAP)
0002c6  8820              LDRH     r0,[r4,#0]
0002c8  2807              CMP      r0,#7
0002ca  d131              BNE      |L1.816|
;;;323      {
;;;324        if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
0002cc  8860              LDRH     r0,[r4,#2]
0002ce  b950              CBNZ     r0,|L1.742|
;;;325        {
;;;326          /* TI1 Configuration */
;;;327          TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
0002d0  7aa3              LDRB     r3,[r4,#0xa]
0002d2  88e2              LDRH     r2,[r4,#6]
0002d4  88a1              LDRH     r1,[r4,#4]
0002d6  4628              MOV      r0,r5
0002d8  f7fffffe          BL       TI1_Config
;;;328                     TIM_ICInitStruct->TIM_ICSelection,
;;;329                     TIM_ICInitStruct->TIM_ICFilter);
;;;330    
;;;331          /* Set the Input Capture Prescaler value */
;;;332          TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0002dc  8921              LDRH     r1,[r4,#8]
0002de  4628              MOV      r0,r5
0002e0  e8bd4030          POP      {r4,r5,lr}
0002e4  e7fe              B        TIM_SetIC1Prescaler
                  |L1.742|
;;;333        }
;;;334        else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2)
0002e6  2801              CMP      r0,#1
0002e8  d10a              BNE      |L1.768|
;;;335        {
;;;336          /* TI2 Configuration */
;;;337          TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
0002ea  7aa3              LDRB     r3,[r4,#0xa]
0002ec  88e2              LDRH     r2,[r4,#6]
0002ee  88a1              LDRH     r1,[r4,#4]
0002f0  4628              MOV      r0,r5
0002f2  f7fffffe          BL       TI2_Config
;;;338                     TIM_ICInitStruct->TIM_ICSelection,
;;;339                     TIM_ICInitStruct->TIM_ICFilter);
;;;340    
;;;341          /* Set the Input Capture Prescaler value */
;;;342          TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0002f6  8921              LDRH     r1,[r4,#8]
0002f8  4628              MOV      r0,r5
0002fa  e8bd4030          POP      {r4,r5,lr}
0002fe  e7fe              B        TIM_SetIC2Prescaler
                  |L1.768|
;;;343        }
;;;344        else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_3)
000300  2802              CMP      r0,#2
000302  d10a              BNE      |L1.794|
;;;345        {
;;;346          /* TI3 Configuration */
;;;347          TI3_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
000304  7aa3              LDRB     r3,[r4,#0xa]
000306  88e2              LDRH     r2,[r4,#6]
000308  88a1              LDRH     r1,[r4,#4]
00030a  4628              MOV      r0,r5
00030c  f7fffffe          BL       TI3_Config
;;;348                     TIM_ICInitStruct->TIM_ICSelection,
;;;349                     TIM_ICInitStruct->TIM_ICFilter);
;;;350    
;;;351          /* Set the Input Capture Prescaler value */
;;;352          TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000310  8921              LDRH     r1,[r4,#8]
000312  4628              MOV      r0,r5
000314  e8bd4030          POP      {r4,r5,lr}
000318  e7fe              B        TIM_SetIC3Prescaler
                  |L1.794|
;;;353        }
;;;354        else /* TIM_Channel_4 */
;;;355        {
;;;356          /* TI4 Configuration */
;;;357          TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
00031a  7aa3              LDRB     r3,[r4,#0xa]
00031c  88e2              LDRH     r2,[r4,#6]
00031e  88a1              LDRH     r1,[r4,#4]
000320  4628              MOV      r0,r5
000322  f7fffffe          BL       TI4_Config
;;;358                     TIM_ICInitStruct->TIM_ICSelection,
;;;359                     TIM_ICInitStruct->TIM_ICFilter);
;;;360    
;;;361          /* Set the Input Capture Prescaler value */
;;;362          TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000326  8921              LDRH     r1,[r4,#8]
000328  4628              MOV      r0,r5
00032a  e8bd4030          POP      {r4,r5,lr}
00032e  e7fe              B        TIM_SetIC4Prescaler
                  |L1.816|
;;;363        }
;;;364      }
;;;365      else
;;;366      {
;;;367        PWMI_Config(TIMx, TIM_ICInitStruct);
000330  4621              MOV      r1,r4
000332  4628              MOV      r0,r5
000334  e8bd4030          POP      {r4,r5,lr}
000338  e7fe              B        PWMI_Config
;;;368      }
;;;369    }
;;;370    
                          ENDP

                  TIM_TimeBaseStructInit PROC
;;;381      /* Set the default configuration */
;;;382      TIM_TimeBaseInitStruct->TIM_Period = TIM_Period_Reset_Mask;
00033a  2100              MOVS     r1,#0
00033c  8001              STRH     r1,[r0,#0]
;;;383      TIM_TimeBaseInitStruct->TIM_Prescaler = TIM_Prescaler_Reset_Mask;
00033e  8041              STRH     r1,[r0,#2]
;;;384      TIM_TimeBaseInitStruct->TIM_ClockDivision = TIM_CKD_DIV1;
000340  8081              STRH     r1,[r0,#4]
;;;385      TIM_TimeBaseInitStruct->TIM_CounterMode = TIM_CounterMode_Up;
000342  80c1              STRH     r1,[r0,#6]
;;;386    }
000344  4770              BX       lr
;;;387    
                          ENDP

                  TIM_OCStructInit PROC
;;;398      /* Set the default configuration */
;;;399      TIM_OCInitStruct->TIM_OCMode = TIM_OCMode_Timing;
000346  2100              MOVS     r1,#0
000348  8001              STRH     r1,[r0,#0]
;;;400      TIM_OCInitStruct->TIM_Channel = TIM_Channel_1;
00034a  8041              STRH     r1,[r0,#2]
;;;401      TIM_OCInitStruct->TIM_Pulse = TIM_Pulse_Reset_Mask;
00034c  8081              STRH     r1,[r0,#4]
;;;402      TIM_OCInitStruct->TIM_OCPolarity = TIM_OCPolarity_High;
00034e  80c1              STRH     r1,[r0,#6]
;;;403    }
000350  4770              BX       lr
;;;404    
                          ENDP

                  TIM_ICStructInit PROC
;;;415      /* Set the default configuration */
;;;416      TIM_ICInitStruct->TIM_ICMode = TIM_ICMode_ICAP;
000352  2107              MOVS     r1,#7
000354  8001              STRH     r1,[r0,#0]
;;;417      TIM_ICInitStruct->TIM_Channel = TIM_Channel_1;
000356  2100              MOVS     r1,#0
000358  8041              STRH     r1,[r0,#2]
;;;418      TIM_ICInitStruct->TIM_ICPolarity = TIM_ICPolarity_Rising;
00035a  8081              STRH     r1,[r0,#4]
;;;419      TIM_ICInitStruct->TIM_ICSelection = TIM_ICSelection_DirectTI;
00035c  2201              MOVS     r2,#1
00035e  80c2              STRH     r2,[r0,#6]
;;;420      TIM_ICInitStruct->TIM_ICPrescaler = TIM_ICPSC_DIV1;
000360  8101              STRH     r1,[r0,#8]
;;;421      TIM_ICInitStruct->TIM_ICFilter = TIM_ICFilter_Mask;
000362  7281              STRB     r1,[r0,#0xa]
;;;422    }
000364  4770              BX       lr
;;;423    
                          ENDP

                  TIM_Cmd PROC
;;;437      
;;;438      if (NewState != DISABLE)
000366  b121              CBZ      r1,|L1.882|
;;;439      {
;;;440        /* Enable the TIM Counter */
;;;441        TIMx->CR1 |= CR1_CEN_Set;
000368  8801              LDRH     r1,[r0,#0]
00036a  f0410101          ORR      r1,r1,#1
00036e  8001              STRH     r1,[r0,#0]
;;;442      }
;;;443      else
;;;444      {
;;;445        /* Disable the TIM Counter */
;;;446        TIMx->CR1 &= CR1_CEN_Reset;
;;;447      }
;;;448    }
000370  4770              BX       lr
                  |L1.882|
000372  8801              LDRH     r1,[r0,#0]            ;446
000374  f0210101          BIC      r1,r1,#1              ;446
000378  f421417c          BIC      r1,r1,#0xfc00         ;446
00037c  8001              STRH     r1,[r0,#0]            ;446
00037e  4770              BX       lr
;;;449    
                          ENDP

                  TIM_ITConfig PROC
;;;473      
;;;474      if (NewState != DISABLE)
000380  b11a              CBZ      r2,|L1.906|
;;;475      {
;;;476        /* Enable the Interrupt sources */
;;;477        TIMx->DIER |= TIM_IT;
000382  8982              LDRH     r2,[r0,#0xc]
000384  4311              ORRS     r1,r1,r2
000386  8181              STRH     r1,[r0,#0xc]
;;;478      }
;;;479      else
;;;480      {
;;;481        /* Disable the Interrupt sources */
;;;482        TIMx->DIER &= (u16)(~TIM_IT);
;;;483      }
;;;484    }
000388  4770              BX       lr
                  |L1.906|
00038a  8982              LDRH     r2,[r0,#0xc]          ;482
00038c  ea220101          BIC      r1,r2,r1              ;482
000390  8181              STRH     r1,[r0,#0xc]          ;482
000392  4770              BX       lr
;;;485    
                          ENDP

                  TIM_DMAConfig PROC
;;;511      
;;;512      tmpdcr = TIMx->DCR;
000394  f8b03048          LDRH     r3,[r0,#0x48]
;;;513    
;;;514      /* Reset the DBA and the DBL Bits */
;;;515      tmpdcr &= DCR_DMA_Mask;
;;;516    
;;;517      /* Set the DMA Base and the DMA Burst Length */
;;;518      tmpdcr |= TIM_DMABase | TIM_DMABurstLength;
000398  4311              ORRS     r1,r1,r2
;;;519    
;;;520      TIMx->DCR = (u16)tmpdcr;
00039a  f8a01048          STRH     r1,[r0,#0x48]
;;;521    }
00039e  4770              BX       lr
;;;522    
                          ENDP

                  TIM_DMACmd PROC
;;;546    
;;;547      tmpdier = TIMx->DIER;
0003a0  8983              LDRH     r3,[r0,#0xc]
;;;548    
;;;549      if (Newstate != DISABLE)
0003a2  b10a              CBZ      r2,|L1.936|
;;;550      {
;;;551        /* Enable the DMA sources */
;;;552        tmpdier |= TIM_DMASource;
0003a4  4319              ORRS     r1,r1,r3
0003a6  e002              B        |L1.942|
                  |L1.936|
;;;553      }
;;;554      else
;;;555      {
;;;556        /* Disable the DMA sources */
;;;557        tmpdier &= (u16)(~TIM_DMASource);
0003a8  43c9              MVNS     r1,r1
0003aa  b289              UXTH     r1,r1
0003ac  4019              ANDS     r1,r1,r3
                  |L1.942|
;;;558      }
;;;559      TIMx->DIER = (u16)tmpdier;
0003ae  8181              STRH     r1,[r0,#0xc]
;;;560    }
0003b0  4770              BX       lr
;;;561    
                          ENDP

                  TIM_InternalClockConfig PROC
;;;571      /* Disable slave mode to clock the prescaler directly with the internal clock */
;;;572      TIMx->SMCR &=  SMCR_SMS_Mask;
0003b2  8901              LDRH     r1,[r0,#8]
0003b4  f021010f          BIC      r1,r1,#0xf
0003b8  8101              STRH     r1,[r0,#8]
;;;573    }
0003ba  4770              BX       lr
;;;574    /*******************************************************************************
                          ENDP

                  TIM_SelectInputTrigger PROC
;;;768    
;;;769      tmpsmcr = TIMx->SMCR;
0003bc  8902              LDRH     r2,[r0,#8]
;;;770    
;;;771      /* Select the Tgigger Source */
;;;772      tmpsmcr &= SMCR_TS_Mask;
0003be  f64f7387          MOV      r3,#0xff87
0003c2  401a              ANDS     r2,r2,r3
;;;773      tmpsmcr |= TIM_InputTriggerSource;
0003c4  4311              ORRS     r1,r1,r2
;;;774    
;;;775      TIMx->SMCR = (u16)tmpsmcr;
0003c6  8101              STRH     r1,[r0,#8]
;;;776    }
0003c8  4770              BX       lr
;;;777    
                          ENDP

                  TIM_ITRxExternalClockConfig PROC
;;;587    void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, u16 TIM_InputTriggerSource)
;;;588    {
0003ca  b510              PUSH     {r4,lr}
0003cc  4604              MOV      r4,r0
;;;589      /* Check the parameters */
;;;590      assert(IS_TIM_INTERNAL_TRIGGER_SELECTION(TIM_InputTriggerSource));
;;;591    
;;;592      /* Select the Internal Trigger */
;;;593      TIM_SelectInputTrigger(TIMx, TIM_InputTriggerSource);
0003ce  4620              MOV      r0,r4
0003d0  f7fffffe          BL       TIM_SelectInputTrigger
;;;594    
;;;595      /* Select the External clock mode1 */
;;;596      TIMx->SMCR |= TIM_SlaveMode_External1;
0003d4  8920              LDRH     r0,[r4,#8]
0003d6  f0400007          ORR      r0,r0,#7
0003da  8120              STRH     r0,[r4,#8]
;;;597    }
0003dc  bd10              POP      {r4,pc}
;;;598    /*******************************************************************************
                          ENDP

                  TIM_TIxExternalClockConfig PROC
;;;617                                    u16 TIM_ICPolarity, u8 ICFilter)
;;;618    {
0003de  b530              PUSH     {r4,r5,lr}
0003e0  460d              MOV      r5,r1
0003e2  4604              MOV      r4,r0
0003e4  4611              MOV      r1,r2
;;;619      /* Check the parameters */
;;;620      assert(IS_TIM_TIX_TRIGGER_SELECTION(TIM_TIxExternalCLKSource));
;;;621      assert(IS_TIM_IC_POLARITY(TIM_ICPolarity));
;;;622      assert(IS_TIM_IC_FILTER(ICFilter));
;;;623    
;;;624      /* Configure the Timer Input Clock Source */
;;;625      if (TIM_TIxExternalCLKSource == TIM_TIxExternalCLK1Source_TI2)
0003e6  2d60              CMP      r5,#0x60
0003e8  d104              BNE      |L1.1012|
;;;626      {
;;;627        TI2_Config(TIMx, TIM_ICPolarity, TIM_ICSelection_DirectTI, ICFilter);
0003ea  2201              MOVS     r2,#1
0003ec  4620              MOV      r0,r4
0003ee  f7fffffe          BL       TI2_Config

⌨️ 快捷键说明

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