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

📄 stm32f10x_tim.txt

📁 ucos2.86版本结合STM板极支持包
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;2339     tmpccer &= CCER_CC1P_Mask & CCER_CC1E_Mask;
00016e  f64ff64f          MOV      r3,#0xfffc
000172  ea0cea0c          AND      r3,r12,r3
;;;2340     tmpccer |= TIM_ICPolarity | CCER_CC1E_Set;
000176  4319              ORRS     r1,r1,r3
000178  f041f041          ORR      r1,r1,#1
;;;2341   
;;;2342     TIMx->CCMR1 = 0x0000;
00017c  2300              MOVS     r3,#0
00017e  8303              STRH     r3,[r0,#0x18]
;;;2343     TIMx->CCMR1 = (u16)tmpccmr1;
000180  8302              STRH     r2,[r0,#0x18]
;;;2344     TIMx->CCER = (u16)tmpccer;
000182  8401              STRH     r1,[r0,#0x20]
;;;2345   }
000184  bc30              POP      {r4,r5}
000186  4770              BX       lr
;;;2346   
                          ENDP

                  TIM_SetIC2Prescaler PROC
;;;1922   
;;;1923     tmpccmr1 = TIMx->CCMR1;
000188  8b02              LDRH     r2,[r0,#0x18]
;;;1924   
;;;1925     /* Reset the IC2PSC Bits */
;;;1926     tmpccmr1 &= CCMR_IC24PSC_Mask;
00018a  f24ff24f          MOV      r3,#0xf3ff
00018e  401a              ANDS     r2,r2,r3
;;;1927   
;;;1928     /* Set the IC2PSC value */
;;;1929     tmpccmr1 |= (u16)((u16)TIM_IC2Prescaler << 8);
000190  ea42ea42          ORR      r1,r2,r1,LSL #8
;;;1930   
;;;1931     TIMx->CCMR1 = (u16)tmpccmr1;
000194  8301              STRH     r1,[r0,#0x18]
;;;1932   }
000196  4770              BX       lr
;;;1933   
                          ENDP

                  TI2_Config PROC
;;;2369                          u8 TIM_ICFilter)
;;;2370   {
000198  b430              PUSH     {r4,r5}
;;;2371     u32 tmpccmr1 = 0, tmpccer = 0, tmp = 0;
;;;2372   
;;;2373     tmpccmr1 = TIMx->CCMR1;
00019a  8b04              LDRH     r4,[r0,#0x18]
;;;2374     tmpccer = TIMx->CCER;
00019c  f8b0f8b0          LDRH     r12,[r0,#0x20]
;;;2375     tmp = (u16)((u16)TIM_ICPolarity << 4);
0001a0  0109              LSLS     r1,r1,#4
;;;2376   
;;;2377     /* Disable the Channel 2: Reset the CCE Bit */
;;;2378     TIMx->CCER &= CCER_CC2E_Reset;
0001a2  8c05              LDRH     r5,[r0,#0x20]
0001a4  f025f025          BIC      r5,r5,#0x10
0001a8  8405              STRH     r5,[r0,#0x20]
;;;2379   
;;;2380     /* Select the Input and set the filter */
;;;2381     tmpccmr1 &= CCMR_CC24S_Mask & CCMR_IC24F_Mask;
0001aa  f640f640          MOV      r5,#0xc7f
0001ae  402c              ANDS     r4,r4,r5
;;;2382     tmpccmr1 |= (u16)((u16)TIM_ICFilter << 12);
0001b0  ea44ea44          ORR      r3,r4,r3,LSL #12
;;;2383     tmpccmr1 |= (u16)((u16)TIM_ICSelection << 8);
0001b4  ea43ea43          ORR      r2,r3,r2,LSL #8
;;;2384   
;;;2385     /* Select the Polarity  and set the CCE Bit */
;;;2386     tmpccer &= CCER_CC2P_Mask & CCER_CC2E_Mask;
0001b8  f64ff64f          MOV      r3,#0xffcf
0001bc  ea0cea0c          AND      r3,r12,r3
;;;2387     tmpccer |=  tmp | CCER_CC2E_Set;
0001c0  4319              ORRS     r1,r1,r3
0001c2  f041f041          ORR      r1,r1,#0x10
;;;2388   
;;;2389     TIMx->CCMR1 = (u16)tmpccmr1 ;
0001c6  8302              STRH     r2,[r0,#0x18]
;;;2390     TIMx->CCER = (u16)tmpccer;
0001c8  8401              STRH     r1,[r0,#0x20]
;;;2391   }
0001ca  bc30              POP      {r4,r5}
0001cc  4770              BX       lr
;;;2392   
                          ENDP

                  PWMI_Config PROC
;;;2245   static void PWMI_Config(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
;;;2246   {
0001ce  b5f0              PUSH     {r4-r7,lr}
0001d0  4607              MOV      r7,r0
0001d2  460c              MOV      r4,r1
;;;2247     u8 ICPolarity = TIM_ICPolarity_Rising;
0001d4  2500              MOVS     r5,#0
;;;2248     u8 ICSelection = TIM_ICSelection_DirectTI;
0001d6  2601              MOVS     r6,#1
;;;2249   
;;;2250     /* Select the Opposite Input Polarity */
;;;2251     if (TIM_ICInitStruct->TIM_ICPolarity == TIM_ICPolarity_Rising)
0001d8  88a1              LDRH     r1,[r4,#4]
0001da  b901              CBNZ     r1,|L1.478|
;;;2252     {
;;;2253       ICPolarity = TIM_ICPolarity_Falling;
0001dc  2502              MOVS     r5,#2
                  |L1.478|
;;;2254     }
;;;2255     else
;;;2256     {
;;;2257       ICPolarity = TIM_ICPolarity_Rising;
;;;2258     }
;;;2259   
;;;2260     /* Select the Opposite Input */
;;;2261     if (TIM_ICInitStruct->TIM_ICSelection == TIM_ICSelection_DirectTI)
0001de  88e2              LDRH     r2,[r4,#6]
0001e0  2a01              CMP      r2,#1
0001e2  d100              BNE      |L1.486|
;;;2262     {
;;;2263       ICSelection = TIM_ICSelection_IndirectTI;
0001e4  2602              MOVS     r6,#2
                  |L1.486|
;;;2264     }
;;;2265     else
;;;2266     {
;;;2267       ICSelection = TIM_ICSelection_DirectTI;
;;;2268     }
;;;2269   
;;;2270     if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
0001e6  8860              LDRH     r0,[r4,#2]
0001e8  7aa3              LDRB     r3,[r4,#0xa]
0001ea  b988              CBNZ     r0,|L1.528|
;;;2271     {
;;;2272       /* TI1 Configuration */
;;;2273       TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection,
0001ec  4638              MOV      r0,r7
0001ee  f7fff7ff          BL       TI1_Config
;;;2274                  TIM_ICInitStruct->TIM_ICFilter);
;;;2275   
;;;2276       /* Set the Input Capture Prescaler value */
;;;2277       TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0001f2  8921              LDRH     r1,[r4,#8]
0001f4  4638              MOV      r0,r7
0001f6  f7fff7ff          BL       TIM_SetIC1Prescaler
;;;2278   
;;;2279       /* TI2 Configuration */
;;;2280       TI2_Config(TIMx, ICPolarity, ICSelection, TIM_ICInitStruct->TIM_ICFilter);
0001fa  7aa3              LDRB     r3,[r4,#0xa]
0001fc  4632              MOV      r2,r6
0001fe  4629              MOV      r1,r5
000200  4638              MOV      r0,r7
000202  f7fff7ff          BL       TI2_Config
;;;2281   
;;;2282       /* Set the Input Capture Prescaler value */
;;;2283       TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000206  8921              LDRH     r1,[r4,#8]
000208  4638              MOV      r0,r7
00020a  e8bde8bd          POP      {r4-r7,lr}
00020e  e7fe              B        TIM_SetIC2Prescaler
                  |L1.528|
;;;2284     }
;;;2285     else
;;;2286     {	 
;;;2287       /* TI1 Configuration */
;;;2288       TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection,
000210  4638              MOV      r0,r7
000212  f7fff7ff          BL       TI2_Config
;;;2289                  TIM_ICInitStruct->TIM_ICFilter);
;;;2290   
;;;2291       /* Set the Input Capture Prescaler value */
;;;2292       TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000216  8921              LDRH     r1,[r4,#8]
000218  4638              MOV      r0,r7
00021a  f7fff7ff          BL       TIM_SetIC2Prescaler
;;;2293   
;;;2294       /* TI2 Configuration */
;;;2295       TI1_Config(TIMx, ICPolarity, ICSelection, TIM_ICInitStruct->TIM_ICFilter);
00021e  7aa3              LDRB     r3,[r4,#0xa]
000220  4632              MOV      r2,r6
000222  4629              MOV      r1,r5
000224  4638              MOV      r0,r7
000226  f7fff7ff          BL       TI1_Config
;;;2296   
;;;2297       /* Set the Input Capture Prescaler value */
;;;2298       TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
00022a  8921              LDRH     r1,[r4,#8]
00022c  4638              MOV      r0,r7
00022e  e8bde8bd          POP      {r4-r7,lr}
000232  e7fe              B        TIM_SetIC1Prescaler
;;;2299     }
;;;2300   }
;;;2301   
                          ENDP

                  TIM_SetIC4Prescaler PROC
;;;1986   
;;;1987     tmpccmr2 = TIMx->CCMR2;
000234  8b82              LDRH     r2,[r0,#0x1c]
;;;1988   
;;;1989     /* Reset the IC4PSC Bits */
;;;1990     tmpccmr2 &= CCMR_IC24PSC_Mask;
000236  f24ff24f          MOV      r3,#0xf3ff
00023a  401a              ANDS     r2,r2,r3
;;;1991   
;;;1992     /* Set the IC4PSC value */
;;;1993     tmpccmr2 |= (u16)((u16)TIM_IC4Prescaler << 8);
00023c  ea42ea42          ORR      r1,r2,r1,LSL #8
;;;1994   
;;;1995     TIMx->CCMR2 = (u16)tmpccmr2;
000240  8381              STRH     r1,[r0,#0x1c]
;;;1996   }
000242  4770              BX       lr
;;;1997   
                          ENDP

                  TI4_Config PROC
;;;2460                          u8 TIM_ICFilter)
;;;2461   {
000244  b430              PUSH     {r4,r5}
;;;2462     u32 tmpccmr2 = 0, tmpccer = 0, tmp = 0;
;;;2463   
;;;2464     tmpccmr2 = TIMx->CCMR2;
000246  8b84              LDRH     r4,[r0,#0x1c]
;;;2465     tmpccer = TIMx->CCER;
000248  f8b0f8b0          LDRH     r12,[r0,#0x20]
;;;2466     tmp = (u16)((u16)TIM_ICPolarity << 12);
00024c  0309              LSLS     r1,r1,#12
;;;2467   
;;;2468     /* Disable the Channel 4: Reset the CCE Bit */
;;;2469     TIMx->CCER &= CCER_CC4E_Reset;
00024e  8c05              LDRH     r5,[r0,#0x20]
000250  f425f425          BIC      r5,r5,#0x1000
000254  8405              STRH     r5,[r0,#0x20]
;;;2470   
;;;2471     /* Select the Input and set the filter */
;;;2472     tmpccmr2 &= CCMR_CC24S_Mask & CCMR_IC24F_Mask;
000256  f640f640          MOV      r5,#0xc7f
00025a  402c              ANDS     r4,r4,r5
;;;2473     tmpccmr2 |= (u16)((u16)TIM_ICSelection << 8) | (u16)((u16)TIM_ICFilter << 12);
00025c  0212              LSLS     r2,r2,#8
00025e  ea42ea42          ORR      r2,r2,r3,LSL #12
000262  4322              ORRS     r2,r2,r4
;;;2474   
;;;2475     /* Select the Polarity  and set the CCE Bit */
;;;2476     tmpccer &= CCER_CC4P_Mask & CCER_CC4E_Mask;
000264  f64cf64c          MOV      r3,#0xcfff
000268  ea0cea0c          AND      r3,r12,r3
;;;2477     tmpccer |= tmp | CCER_CC4E_Set;
00026c  4319              ORRS     r1,r1,r3
00026e  f441f441          ORR      r1,r1,#0x1000
;;;2478   
;;;2479     TIMx->CCMR2 = (u16)tmpccmr2;
000272  8382              STRH     r2,[r0,#0x1c]
;;;2480     TIMx->CCER = (u16)tmpccer ;
000274  8401              STRH     r1,[r0,#0x20]
;;;2481   }
000276  bc30              POP      {r4,r5}
000278  4770              BX       lr
;;;2482   
                          ENDP

                  TIM_SetIC3Prescaler PROC
;;;1954   
;;;1955     tmpccmr2 = TIMx->CCMR2;
00027a  8b82              LDRH     r2,[r0,#0x1c]
;;;1956   
;;;1957     /* Reset the IC3PSC Bits */
;;;1958     tmpccmr2 &= CCMR_IC13PSC_Mask;
00027c  f64ff64f          MOV      r3,#0xfff3
000280  401a              ANDS     r2,r2,r3
;;;1959   
;;;1960     /* Set the IC3PSC value */
;;;1961     tmpccmr2 |= TIM_IC3Prescaler;
000282  4311              ORRS     r1,r1,r2
;;;1962   
;;;1963     TIMx->CCMR2 = (u16)tmpccmr2;
000284  8381              STRH     r1,[r0,#0x1c]
;;;1964   }
000286  4770              BX       lr
;;;1965   
                          ENDP

                  TI3_Config PROC
;;;2415                          u8 TIM_ICFilter)
;;;2416   {
000288  b430              PUSH     {r4,r5}
;;;2417     u32 tmpccmr2 = 0, tmpccer = 0, tmp = 0;
;;;2418   
;;;2419     tmpccmr2 = TIMx->CCMR2;
00028a  f8b0f8b0          LDRH     r12,[r0,#0x1c]
;;;2420     tmpccer = TIMx->CCER;
00028e  8c04              LDRH     r4,[r0,#0x20]
;;;2421     tmp = (u16)((u16)TIM_ICPolarity << 8);
000290  0209              LSLS     r1,r1,#8
;;;2422   
;;;2423     /* Disable the Channel 3: Reset the CCE Bit */
;;;2424     TIMx->CCER &= CCER_CC3E_Reset;
000292  8c05              LDRH     r5,[r0,#0x20]
000294  f425f425          BIC      r5,r5,#0x100
000298  8405              STRH     r5,[r0,#0x20]
;;;2425   
;;;2426     /* Select the Input and set the filter */
;;;2427     tmpccmr2 &= CCMR_CC13S_Mask & CCMR_IC13F_Mask;
00029a  f647f647          MOV      r5,#0x7f0c
00029e  ea0cea0c          AND      r12,r12,r5
;;;2428     tmpccmr2 |= TIM_ICSelection | (u16)((u16)TIM_ICFilter << 4);
0002a2  ea42ea42          ORR      r2,r2,r3,LSL #4
0002a6  ea42ea42          ORR      r2,r2,r12
;;;2429   
;;;2430     /* Select the Polarity  and set the CCE Bit */
;;;2431     tmpccer &= CCER_CC1P_Mask & CCER_CC1E_Mask;
0002aa  f64ff64f          MOV      r3,#0xfffc
0002ae  4023              ANDS     r3,r3,r4
;;;2432     tmpccer |= tmp | CCER_CC3E_Set;
0002b0  4319              ORRS     r1,r1,r3
0002b2  f441f441          ORR      r1,r1,#0x100
;;;2433   
;;;2434     TIMx->CCMR2 = (u16)tmpccmr2;
0002b6  8382              STRH     r2,[r0,#0x1c]
;;;2435     TIMx->CCER = (u16)tmpccer;
0002b8  8401              STRH     r1,[r0,#0x20]
;;;2436   }
0002ba  bc30              POP      {r4,r5}
0002bc  4770              BX       lr
;;;2437   
                          ENDP

                  TIM_ICInit PROC
;;;312    void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
;;;313    {
0002be  b530              PUSH     {r4,r5,lr}
0002c0  4605              MOV      r5,r0
0002c2  460c              MOV      r4,r1
;;;314      /* Check the parameters */
;;;315      assert(IS_TIM_IC_MODE(TIM_ICInitStruct->TIM_ICMode));
;;;316      assert(IS_TIM_CHANNEL(TIM_ICInitStruct->TIM_Channel));
;;;317      assert(IS_TIM_IC_POLARITY(TIM_ICInitStruct->TIM_ICPolarity));
;;;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      

⌨️ 快捷键说明

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