📄 stm32f10x_tim.txt
字号:
;;;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 + -