📄 stm32f10x_tim.txt
字号:
ENDP
TIM_ICInit PROC
;;;587 void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
;;;588 {
000396 b530 PUSH {r4,r5,lr}
000398 4605 MOV r5,r0
00039a 460c MOV r4,r1
;;;589 /* Check the parameters */
;;;590 assert_param(IS_TIM_123458_PERIPH(TIMx));
;;;591 assert_param(IS_TIM_CHANNEL(TIM_ICInitStruct->TIM_Channel));
;;;592 assert_param(IS_TIM_IC_POLARITY(TIM_ICInitStruct->TIM_ICPolarity));
;;;593 assert_param(IS_TIM_IC_SELECTION(TIM_ICInitStruct->TIM_ICSelection));
;;;594 assert_param(IS_TIM_IC_PRESCALER(TIM_ICInitStruct->TIM_ICPrescaler));
;;;595 assert_param(IS_TIM_IC_FILTER(TIM_ICInitStruct->TIM_ICFilter));
;;;596
;;;597 if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
00039c 8820 LDRH r0,[r4,#0]
00039e 8861 LDRH r1,[r4,#2]
0003a0 88a2 LDRH r2,[r4,#4]
0003a2 8923 LDRH r3,[r4,#8]
0003a4 b938 CBNZ r0,|L1.950|
;;;598 {
;;;599 /* TI1 Configuration */
;;;600 TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
0003a6 4628 MOV r0,r5
0003a8 f7fff7ff BL TI1_Config
;;;601 TIM_ICInitStruct->TIM_ICSelection,
;;;602 TIM_ICInitStruct->TIM_ICFilter);
;;;603
;;;604 /* Set the Input Capture Prescaler value */
;;;605 TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0003ac 88e1 LDRH r1,[r4,#6]
0003ae 4628 MOV r0,r5
0003b0 e8bde8bd POP {r4,r5,lr}
0003b4 e7fe B TIM_SetIC1Prescaler
|L1.950|
;;;606 }
;;;607 else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2)
0003b6 2804 CMP r0,#4
0003b8 d107 BNE |L1.970|
;;;608 {
;;;609 /* TI2 Configuration */
;;;610 TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
0003ba 4628 MOV r0,r5
0003bc f7fff7ff BL TI2_Config
;;;611 TIM_ICInitStruct->TIM_ICSelection,
;;;612 TIM_ICInitStruct->TIM_ICFilter);
;;;613
;;;614 /* Set the Input Capture Prescaler value */
;;;615 TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0003c0 88e1 LDRH r1,[r4,#6]
0003c2 4628 MOV r0,r5
0003c4 e8bde8bd POP {r4,r5,lr}
0003c8 e7fe B TIM_SetIC2Prescaler
|L1.970|
;;;616 }
;;;617 else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_3)
0003ca 2808 CMP r0,#8
0003cc d107 BNE |L1.990|
;;;618 {
;;;619 /* TI3 Configuration */
;;;620 TI3_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
0003ce 4628 MOV r0,r5
0003d0 f7fff7ff BL TI3_Config
;;;621 TIM_ICInitStruct->TIM_ICSelection,
;;;622 TIM_ICInitStruct->TIM_ICFilter);
;;;623
;;;624 /* Set the Input Capture Prescaler value */
;;;625 TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0003d4 88e1 LDRH r1,[r4,#6]
0003d6 4628 MOV r0,r5
0003d8 e8bde8bd POP {r4,r5,lr}
0003dc e7fe B TIM_SetIC3Prescaler
|L1.990|
;;;626 }
;;;627 else
;;;628 {
;;;629 /* TI4 Configuration */
;;;630 TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
0003de 4628 MOV r0,r5
0003e0 f7fff7ff BL TI4_Config
;;;631 TIM_ICInitStruct->TIM_ICSelection,
;;;632 TIM_ICInitStruct->TIM_ICFilter);
;;;633
;;;634 /* Set the Input Capture Prescaler value */
;;;635 TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
0003e4 88e1 LDRH r1,[r4,#6]
0003e6 4628 MOV r0,r5
0003e8 e8bde8bd POP {r4,r5,lr}
0003ec e7fe B TIM_SetIC4Prescaler
0003ee 0000 DCW 0x0000
|L1.1008|
0003f0 40001000 DCD 0x40001000
|L1.1012|
0003f4 bffffc00 DCD 0xbffffc00
|L1.1016|
0003f8 40012c00 DCD 0x40012c00
|L1.1020|
0003fc 40013400 DCD 0x40013400
ENDP
TIM_PWMIConfig PROC
;;;652 void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
;;;653 {
000400 b5f0 PUSH {r4-r7,lr}
000402 4607 MOV r7,r0
000404 460c MOV r4,r1
;;;654 u16 icoppositepolarity = TIM_ICPolarity_Rising;
000406 2500 MOVS r5,#0
;;;655 u16 icoppositeselection = TIM_ICSelection_DirectTI;
000408 2601 MOVS r6,#1
;;;656
;;;657 /* Check the parameters */
;;;658 assert_param(IS_TIM_123458_PERIPH(TIMx));
;;;659
;;;660 /* Select the Opposite Input Polarity */
;;;661 if (TIM_ICInitStruct->TIM_ICPolarity == TIM_ICPolarity_Rising)
00040a 8861 LDRH r1,[r4,#2]
00040c b901 CBNZ r1,|L1.1040|
;;;662 {
;;;663 icoppositepolarity = TIM_ICPolarity_Falling;
00040e 2502 MOVS r5,#2
|L1.1040|
;;;664 }
;;;665 else
;;;666 {
;;;667 icoppositepolarity = TIM_ICPolarity_Rising;
;;;668 }
;;;669
;;;670 /* Select the Opposite Input */
;;;671 if (TIM_ICInitStruct->TIM_ICSelection == TIM_ICSelection_DirectTI)
000410 88a2 LDRH r2,[r4,#4]
000412 2a01 CMP r2,#1
000414 d100 BNE |L1.1048|
;;;672 {
;;;673 icoppositeselection = TIM_ICSelection_IndirectTI;
000416 2602 MOVS r6,#2
|L1.1048|
;;;674 }
;;;675 else
;;;676 {
;;;677 icoppositeselection = TIM_ICSelection_DirectTI;
;;;678 }
;;;679
;;;680 if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
000418 8820 LDRH r0,[r4,#0]
00041a 8923 LDRH r3,[r4,#8]
00041c b988 CBNZ r0,|L1.1090|
;;;681 {
;;;682 /* TI1 Configuration */
;;;683 TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection,
00041e 4638 MOV r0,r7
000420 f7fff7ff BL TI1_Config
;;;684 TIM_ICInitStruct->TIM_ICFilter);
;;;685
;;;686 /* Set the Input Capture Prescaler value */
;;;687 TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000424 88e1 LDRH r1,[r4,#6]
000426 4638 MOV r0,r7
000428 f7fff7ff BL TIM_SetIC1Prescaler
;;;688
;;;689 /* TI2 Configuration */
;;;690 TI2_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter);
00042c 8923 LDRH r3,[r4,#8]
00042e 4632 MOV r2,r6
000430 4629 MOV r1,r5
000432 4638 MOV r0,r7
000434 f7fff7ff BL TI2_Config
;;;691
;;;692 /* Set the Input Capture Prescaler value */
;;;693 TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000438 88e1 LDRH r1,[r4,#6]
00043a 4638 MOV r0,r7
00043c e8bde8bd POP {r4-r7,lr}
000440 e7fe B TIM_SetIC2Prescaler
|L1.1090|
;;;694 }
;;;695 else
;;;696 {
;;;697 /* TI2 Configuration */
;;;698 TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection,
000442 4638 MOV r0,r7
000444 f7fff7ff BL TI2_Config
;;;699 TIM_ICInitStruct->TIM_ICFilter);
;;;700
;;;701 /* Set the Input Capture Prescaler value */
;;;702 TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
000448 88e1 LDRH r1,[r4,#6]
00044a 4638 MOV r0,r7
00044c f7fff7ff BL TIM_SetIC2Prescaler
;;;703
;;;704 /* TI1 Configuration */
;;;705 TI1_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter);
000450 8923 LDRH r3,[r4,#8]
000452 4632 MOV r2,r6
000454 4629 MOV r1,r5
000456 4638 MOV r0,r7
000458 f7fff7ff BL TI1_Config
;;;706
;;;707 /* Set the Input Capture Prescaler value */
;;;708 TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
00045c 88e1 LDRH r1,[r4,#6]
00045e 4638 MOV r0,r7
000460 e8bde8bd POP {r4-r7,lr}
000464 e7fe B TIM_SetIC1Prescaler
;;;709 }
;;;710 }
;;;711
ENDP
TIM_BDTRConfig PROC
;;;723 void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct)
;;;724 {
000466 b510 PUSH {r4,lr}
;;;725 /* Check the parameters */
;;;726 assert_param(IS_TIM_18_PERIPH(TIMx));
;;;727 assert_param(IS_TIM_OSSR_STATE(TIM_BDTRInitStruct->TIM_OSSRState));
;;;728 assert_param(IS_TIM_OSSI_STATE(TIM_BDTRInitStruct->TIM_OSSIState));
;;;729 assert_param(IS_TIM_LOCK_LEVEL(TIM_BDTRInitStruct->TIM_LOCKLevel));
;;;730 assert_param(IS_TIM_BREAK_STATE(TIM_BDTRInitStruct->TIM_Break));
;;;731 assert_param(IS_TIM_BREAK_POLARITY(TIM_BDTRInitStruct->TIM_BreakPolarity));
;;;732 assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(TIM_BDTRInitStruct->TIM_AutomaticOutput));
;;;733
;;;734 /* Set the Lock level, the Break enable Bit and the Ploarity, the OSSR State,
;;;735 the OSSI State, the dead time value and the Automatic Output Enable Bit */
;;;736
;;;737 TIMx->BDTR = (u32)TIM_BDTRInitStruct->TIM_OSSRState | TIM_BDTRInitStruct->TIM_OSSIState |
000468 880a LDRH r2,[r1,#0]
00046a 884b LDRH r3,[r1,#2]
00046c 88cc LDRH r4,[r1,#6]
00046e 431a ORRS r2,r2,r3
000470 888b LDRH r3,[r1,#4]
000472 4323 ORRS r3,r3,r4
000474 431a ORRS r2,r2,r3
000476 890b LDRH r3,[r1,#8]
000478 431a ORRS r2,r2,r3
00047a 894b LDRH r3,[r1,#0xa]
00047c 8989 LDRH r1,[r1,#0xc]
00047e 431a ORRS r2,r2,r3
000480 430a ORRS r2,r2,r1
000482 f8a0f8a0 STRH r2,[r0,#0x44]
;;;738 TIM_BDTRInitStruct->TIM_LOCKLevel | TIM_BDTRInitStruct->TIM_DeadTime |
;;;739 TIM_BDTRInitStruct->TIM_Break | TIM_BDTRInitStruct->TIM_BreakPolarity |
;;;740 TIM_BDTRInitStruct->TIM_AutomaticOutput;
;;;741
;;;742 }
000486 bd10 POP {r4,pc}
;;;743
ENDP
TIM_TimeBaseStructInit PROC
;;;754 /* Set the default configuration */
;;;755 TIM_TimeBaseInitStruct->TIM_Period = 0xFFFF;
000488 f64ff64f MOV r1,#0xffff
00048c 8081 STRH r1,[r0,#4]
;;;756 TIM_TimeBaseInitStruct->TIM_Prescaler = 0x0000;
00048e 2100 MOVS r1,#0
000490 8001 STRH r1,[r0,#0]
;;;757 TIM_TimeBaseInitStruct->TIM_ClockDivision = TIM_CKD_DIV1;
000492 80c1 STRH r1,[r0,#6]
;;;758 TIM_TimeBaseInitStruct->TIM_CounterMode = TIM_CounterMode_Up;
000494 8041 STRH r1,[r0,#2]
;;;759 TIM_TimeBaseInitStruct->TIM_RepetitionCounter = 0x0000;
000496 7201 STRB r1,[r0,#8]
;;;760 }
000498 4770 BX lr
;;;761
ENDP
TIM_OCStructInit PROC
;;;772 /* Set the default configuration */
;;;773 TIM_OCInitStruct->TIM_OCMode = TIM_OCMode_Timing;
00049a 2100 MOVS r1,#0
00049c 8001 STRH r1,[r0,#0]
;;;774 TIM_OCInitStruct->TIM_OutputState = TIM_OutputState_Disable;
00049e 8041 STRH r1,[r0,#2]
;;;775 TIM_OCInitStruct->TIM_OutputNState = TIM_OutputNState_Disable;
0004a0 8081 STRH r1,[r0,#4]
;;;776 TIM_OCInitStruct->TIM_Pulse = 0x0000;
0004a2 80c1 STRH r1,[r0,#6]
;;;777 TIM_OCInitStruct->TIM_OCPolarity = TIM_OCPolarity_High;
0004a4 8101 STRH r1,[r0,#8]
;;;778 TIM_OCInitStruct->TIM_OCNPolarity = TIM_OCPolarity_High;
0004a6 8141 STRH r1,[r0,#0xa]
;;;779 TIM_OCInitStruct->TIM_OCIdleState = TIM_OCIdleState_Reset;
0004a8 8181 STRH r1,[r0,#0xc]
;;;780 TIM_OCInitStruct->TIM_OCNIdleState = TIM_OCNIdleState_Reset;
0004aa 81c1 STRH r1,[r0,#0xe]
;;;781 }
0004ac 4770 BX lr
;;;782
ENDP
TIM_ICStructInit PROC
;;;793 /* Set the default configuration */
;;;794 TIM_ICInitStruct->TIM_Channel = TIM_Channel_1;
0004ae 2100 MOVS r1,#0
0004b0 8001 STRH r1,[r0,#0]
;;;795 TIM_ICInitStruct->TIM_ICPolarity = TIM_ICPolarity_Rising;
0004b2 8041 STRH r1,[r0,#2]
;;;796 TIM_ICInitStruct->TIM_ICSelection = TIM_ICSelection_DirectTI;
0004b4 2201 MOVS r2,#1
0004b6 8082 STRH r2,[r0,#4]
;;;797 TIM_ICInitStruct->TIM_ICPrescaler = TIM_ICPSC_DIV1;
0004b8 80c1 STRH r1,[r0,#6]
;;;798 TIM_ICInitStruct->TIM_ICFilter = 0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -