📄 stm32f10x_tim.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART 26/Dec/2008 18:22:08 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = thumb #
# Endian = little #
# Stack alignment = 4 #
# Source file = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_t #
# im.c #
# Command line = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_t #
# im.c -lCN F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3 #
# 210E-EVAL\IAR\OS-Probe\Flash\List\ -o #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\ -z6 --no_unroll --no_inline #
# --no_tbaa --no_scheduling --debug --cpu_mode thumb #
# --endian little --cpu cortex-M3 --stack_align 4 -e #
# --fpu None --dlib_config "E:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Kickstart\arm\LIB\dl7mptnnl8n.h" -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ #
# ST\STM3210E-EVAL\IAR\OS-Probe\..\BSP\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\CPU\ST\STM32\inc\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-CPU\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-CPU\ARM-Cortex-M3\IAR #
# \ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E- #
# EVAL\IAR\OS-Probe\..\..\..\..\..\uC-LCD\Source\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-LIB\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uCOS-II\Ports\ARM-Cortex #
# -M3\Generic\IAR\ -I F:\PROJECT\STM32_UCOSII\EvalBoar #
# ds\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uCOS #
# -II\Source\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST #
# \STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uC-Probe\ #
# Target\Communication\Generic\RS-232\Source\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
# ation\Generic\RS-232\Ports\ST\STM32\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
# ation\Generic\Source\ -I F:\PROJECT\STM32_UCOSII\Eva #
# lBoards\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\.. #
# \uC-Probe\Target\Plugins\uCOS-II\ -I "E:\Program #
# Files\IAR Systems\Embedded Workbench 4.0 #
# Kickstart\arm\INC\" #
# List file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\List\stm32f10x_tim.lst #
# Object file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\stm32f10x_tim.r79 #
# #
# #
##############################################################################
F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_tim.c
1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2 * File Name : stm32f10x_tim.c
3 * Author : MCD Application Team
4 * Version : V2.0
5 * Date : 05/23/2008
6 * Description : This file provides all the TIM firmware functions.
7 ********************************************************************************
8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
12 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
14 * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED
15 * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
16 *******************************************************************************/
17
18 /* Includes ------------------------------------------------------------------*/
19 #include "stm32f10x_tim.h"
20 #include "stm32f10x_rcc.h"
21
22 /* Private typedef -----------------------------------------------------------*/
23 /* Private define ------------------------------------------------------------*/
24 /* ---------------------- TIM registers bit mask ------------------------ */
25 #define CR1_CEN_Set ((u16)0x0001)
26 #define CR1_CEN_Reset ((u16)0x03FE)
27 #define CR1_UDIS_Set ((u16)0x0002)
28 #define CR1_UDIS_Reset ((u16)0x03FD)
29 #define CR1_URS_Set ((u16)0x0004)
30 #define CR1_URS_Reset ((u16)0x03FB)
31 #define CR1_OPM_Reset ((u16)0x03F7)
32 #define CR1_CounterMode_Mask ((u16)0x038F)
33 #define CR1_ARPE_Set ((u16)0x0080)
34 #define CR1_ARPE_Reset ((u16)0x037F)
35 #define CR1_CKD_Mask ((u16)0x00FF)
36
37 #define CR2_CCPC_Set ((u16)0x0001)
38 #define CR2_CCPC_Reset ((u16)0xFFFE)
39 #define CR2_CCUS_Set ((u16)0x0004)
40 #define CR2_CCUS_Reset ((u16)0xFFFB)
41 #define CR2_CCDS_Set ((u16)0x0008)
42 #define CR2_CCDS_Reset ((u16)0xFFF7)
43 #define CR2_MMS_Mask ((u16)0xFF8F)
44 #define CR2_TI1S_Set ((u16)0x0080)
45 #define CR2_TI1S_Reset ((u16)0xFF7F)
46 #define CR2_OIS1_Reset ((u16)0x7EFF)
47 #define CR2_OIS1N_Reset ((u16)0x7DFF)
48 #define CR2_OIS2_Reset ((u16)0x7BFF)
49 #define CR2_OIS2N_Reset ((u16)0x77FF)
50 #define CR2_OIS3_Reset ((u16)0x6FFF)
51 #define CR2_OIS3N_Reset ((u16)0x5FFF)
52 #define CR2_OIS4_Reset ((u16)0x3FFF)
53
54 #define SMCR_SMS_Mask ((u16)0xFFF8)
55 #define SMCR_ETR_Mask ((u16)0x00FF)
56 #define SMCR_TS_Mask ((u16)0xFF8F)
57 #define SMCR_MSM_Reset ((u16)0xFF7F)
58 #define SMCR_ECE_Set ((u16)0x4000)
59
60 #define CCMR_CC13S_Mask ((u16)0xFFFC)
61 #define CCMR_CC24S_Mask ((u16)0xFCFF)
62 #define CCMR_TI13Direct_Set ((u16)0x0001)
63 #define CCMR_TI24Direct_Set ((u16)0x0100)
64 #define CCMR_OC13FE_Reset ((u16)0xFFFB)
65 #define CCMR_OC24FE_Reset ((u16)0xFBFF)
66 #define CCMR_OC13PE_Reset ((u16)0xFFF7)
67 #define CCMR_OC24PE_Reset ((u16)0xF7FF)
68 #define CCMR_OC13M_Mask ((u16)0xFF8F)
69 #define CCMR_OC24M_Mask ((u16)0x8FFF)
70
71 #define CCMR_OC13CE_Reset ((u16)0xFF7F)
72 #define CCMR_OC24CE_Reset ((u16)0x7FFF)
73
74 #define CCMR_IC13PSC_Mask ((u16)0xFFF3)
75 #define CCMR_IC24PSC_Mask ((u16)0xF3FF)
76 #define CCMR_IC13F_Mask ((u16)0xFF0F)
77 #define CCMR_IC24F_Mask ((u16)0x0FFF)
78
79 #define CCMR_Offset ((u16)0x0018)
80 #define CCER_CCE_Set ((u16)0x0001)
81 #define CCER_CCNE_Set ((u16)0x0004)
82
83 #define CCER_CC1P_Reset ((u16)0xFFFD)
84 #define CCER_CC2P_Reset ((u16)0xFFDF)
85 #define CCER_CC3P_Reset ((u16)0xFDFF)
86 #define CCER_CC4P_Reset ((u16)0xDFFF)
87
88 #define CCER_CC1NP_Reset ((u16)0xFFF7)
89 #define CCER_CC2NP_Reset ((u16)0xFF7F)
90 #define CCER_CC3NP_Reset ((u16)0xF7FF)
91
92 #define CCER_CC1E_Set ((u16)0x0001)
93 #define CCER_CC1E_Reset ((u16)0xFFFE)
94
95 #define CCER_CC1NE_Reset ((u16)0xFFFB)
96
97 #define CCER_CC2E_Set ((u16)0x0010)
98 #define CCER_CC2E_Reset ((u16)0xFFEF)
99
100 #define CCER_CC2NE_Reset ((u16)0xFFBF)
101
102 #define CCER_CC3E_Set ((u16)0x0100)
103 #define CCER_CC3E_Reset ((u16)0xFEFF)
104
105 #define CCER_CC3NE_Reset ((u16)0xFBFF)
106
107 #define CCER_CC4E_Set ((u16)0x1000)
108 #define CCER_CC4E_Reset ((u16)0xEFFF)
109
110 #define BDTR_MOE_Set ((u16)0x8000)
111 #define BDTR_MOE_Reset ((u16)0x7FFF)
112
113 /* Private macro -------------------------------------------------------------*/
114 /* Private variables ---------------------------------------------------------*/
115 /* Private function prototypes -----------------------------------------------*/
116 static void TI1_Config(TIM_TypeDef* TIMx, u16 TIM_ICPolarity, u16 TIM_ICSelection,
117 u16 TIM_ICFilter);
118 static void TI2_Config(TIM_TypeDef* TIMx, u16 TIM_ICPolarity, u16 TIM_ICSelection,
119 u16 TIM_ICFilter);
120 static void TI3_Config(TIM_TypeDef* TIMx, u16 TIM_ICPolarity, u16 TIM_ICSelection,
121 u16 TIM_ICFilter);
122 static void TI4_Config(TIM_TypeDef* TIMx, u16 TIM_ICPolarity, u16 TIM_ICSelection,
123 u16 TIM_ICFilter);
124 /* Private macro -------------------------------------------------------------*/
125 /* Private variables ---------------------------------------------------------*/
126 /* Private function prototypes -----------------------------------------------*/
127 /* Private functions ---------------------------------------------------------*/
128 /*******************************************************************************
129 * Function Name : TIM_DeInit
130 * Description : Deinitializes the TIMx peripheral registers to their default
131 * reset values.
132 * Input : - TIMx: where x can be 1 to 8 to select the TIM peripheral.
133 * Output : None
134 * Return : None
135 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
136 void TIM_DeInit(TIM_TypeDef* TIMx)
137 {
\ TIM_DeInit:
\ 00000000 00B5 PUSH {LR}
138 /* Check the parameters */
139 assert_param(IS_TIM_ALL_PERIPH(TIMx));
140
141 switch (*(u32*)&TIMx)
\ 00000002 5FF08041 MOVS R1,#+1073741824
\ 00000006 8842 CMP R0,R1
\ 00000008 1FD0 BEQ.N ??TIM_DeInit_0
\ 0000000A 3049 LDR.N R1,??TIM_DeInit_1 ;; 0x40000400
\ 0000000C 8842 CMP R0,R1
\ 0000000E 25D0 BEQ.N ??TIM_DeInit_2
\ 00000010 2F49 LDR.N R1,??TIM_DeInit_1+0x4 ;; 0x40000800
\ 00000012 8842 CMP R0,R1
\ 00000014 2BD0 BEQ.N ??TIM_DeInit_3
\ 00000016 2F49 LDR.N R1,??TIM_DeInit_1+0x8 ;; 0x40000c00
\ 00000018 8842 CMP R0,R1
\ 0000001A 31D0 BEQ.N ??TIM_DeInit_4
\ 0000001C 2E49 LDR.N R1,??TIM_DeInit_1+0xC ;; 0x40001000
\ 0000001E 8842 CMP R0,R1
\ 00000020 37D0 BEQ.N ??TIM_DeInit_5
\ 00000022 2E49 LDR.N R1,??TIM_DeInit_1+0x10 ;; 0x40001400
\ 00000024 8842 CMP R0,R1
\ 00000026 3DD0 BEQ.N ??TIM_DeInit_6
\ 00000028 .... LDR.N R1,??DataTable27 ;; 0x40012c00
\ 0000002A 8842 CMP R0,R1
\ 0000002C 03D0 BEQ.N ??TIM_DeInit_7
\ 0000002E .... LDR.N R1,??DataTable28 ;; 0x40013400
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -