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