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

📄 stm32f10x_tim.txt

📁 针对STM32F103的UCOS移植
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;2337   
;;;2338     /* Select the Polarity  and set the CCE Bit */
;;;2339     tmpccer &= CCER_CC1P_Mask & CCER_CC1E_Mask;
000170  f64f73fc          MOV      r3,#0xfffc
000174  ea0c0303          AND      r3,r12,r3
;;;2340     tmpccer |= TIM_ICPolarity | CCER_CC1E_Set;
000178  4319              ORRS     r1,r1,r3
00017a  f0410101          ORR      r1,r1,#1
;;;2341   
;;;2342     TIMx->CCMR1 = 0x0000;
00017e  2300              MOVS     r3,#0
000180  8303              STRH     r3,[r0,#0x18]
;;;2343     TIMx->CCMR1 = (u16)tmpccmr1;
000182  8302              STRH     r2,[r0,#0x18]
;;;2344     TIMx->CCER = (u16)tmpccer;
000184  8401              STRH     r1,[r0,#0x20]
;;;2345   }
000186  bc30              POP      {r4,r5}
000188  4770              BX       lr
;;;2346   
                          ENDP

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

                  TI2_Config PROC
;;;2369                          u8 TIM_ICFilter)
;;;2370   {
00019a  b430              PUSH     {r4,r5}
;;;2371     u32 tmpccmr1 = 0, tmpccer = 0, tmp = 0;
;;;2372   
;;;2373     tmpccmr1 = TIMx->CCMR1;
00019c  8b04              LDRH     r4,[r0,#0x18]
;;;2374     tmpccer = TIMx->CCER;
00019e  f8b0c020          LDRH     r12,[r0,#0x20]
;;;2375     tmp = (u16)((u16)TIM_ICPolarity << 4);
0001a2  0109              LSLS     r1,r1,#4
;;;2376   
;;;2377     /* Disable the Channel 2: Reset the CCE Bit */
;;;2378     TIMx->CCER &= CCER_CC2E_Reset;
0001a4  8c05              LDRH     r5,[r0,#0x20]
0001a6  f0250510          BIC      r5,r5,#0x10
0001aa  8405              STRH     r5,[r0,#0x20]
;;;2379   
;;;2380     /* Select the Input and set the filter */
;;;2381     tmpccmr1 &= CCMR_CC24S_Mask & CCMR_IC24F_Mask;
0001ac  f640457f          MOV      r5,#0xc7f
0001b0  402c              ANDS     r4,r4,r5
;;;2382     tmpccmr1 |= (u16)((u16)TIM_ICFilter << 12);
0001b2  ea443303          ORR      r3,r4,r3,LSL #12
;;;2383     tmpccmr1 |= (u16)((u16)TIM_ICSelection << 8);
0001b6  ea432202          ORR      r2,r3,r2,LSL #8
;;;2384   
;;;2385     /* Select the Polarity  and set the CCE Bit */
;;;2386     tmpccer &= CCER_CC2P_Mask & CCER_CC2E_Mask;
0001ba  f64f73cf          MOV      r3,#0xffcf
0001be  ea0c0303          AND      r3,r12,r3
;;;2387     tmpccer |=  tmp | CCER_CC2E_Set;
0001c2  4319              ORRS     r1,r1,r3
0001c4  f0410110          ORR      r1,r1,#0x10
;;;2388   
;;;2389     TIMx->CCMR1 = (u16)tmpccmr1 ;
0001c8  8302              STRH     r2,[r0,#0x18]
;;;2390     TIMx->CCER = (u16)tmpccer;
0001ca  8401              STRH     r1,[r0,#0x20]
;;;2391   }
0001cc  bc30              POP      {r4,r5}
0001ce  4770              BX       lr
;;;2392   
                          ENDP

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

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

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

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

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

                  TIM_ICInit PROC
;;;312    void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
;;;313    {
0002c0  b530              PUSH     {r4,r5,lr}
0002c2  4605              MOV      r5,r0
0002c4  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));

⌨️ 快捷键说明

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