1 /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
\r
2 * File Name : 75x_tim.h
\r
3 * Author : MCD Application Team
\r
4 * Date First Issued : 03/10/2006
\r
5 * Description : This file contains all the functions prototypes for the
\r
6 * TIM software library.
\r
7 ********************************************************************************
\r
11 ********************************************************************************
\r
12 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
13 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
\r
14 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
\r
15 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
\r
16 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
\r
17 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
18 *******************************************************************************/
\r
20 /* Define to prevent recursive inclusion -------------------------------------*/
\r
24 /* Includes ------------------------------------------------------------------*/
\r
25 #include "75x_map.h"
\r
27 /* Exported types ------------------------------------------------------------*/
\r
30 u16 TIM_Mode; /* Timer Mode */
\r
31 u16 TIM_Prescaler; /* Prescaler value */
\r
32 u16 TIM_ClockSource; /* Timer clock source */
\r
33 u16 TIM_ExtCLKEdge; /* External clock edge */
\r
34 u16 TIM_CounterMode; /* Counter mode: Up/Down, Edge aligned or center aligned */
\r
35 u16 TIM_Period; /* Period value */
\r
36 u16 TIM_Channel; /* Timer Channel: 1, 2 or All */
\r
37 u16 TIM_Pulse1; /* PWM or OCM Channel 1 pulse length */
\r
38 u16 TIM_Pulse2; /* PWM or OCM Channel 2 pulse length */
\r
39 u16 TIM_RepetitivePulse; /* OPM Repetitive pulse state: enable or disable */
\r
40 u16 TIM_Polarity1; /* PWM, OCM or OPM Channel 1 polarity */
\r
41 u16 TIM_Polarity2; /* PWM or OCM Channel 2 polarity */
\r
42 u16 TIM_IC1Selection; /* Input Capture 1 selection: TI1 or TI2 */
\r
43 u16 TIM_IC2Selection; /* Input Capture 2 selection: TI1 or TI2 */
\r
44 u16 TIM_IC1Polarity; /* Input Capture 1 polarity */
\r
45 u16 TIM_IC2Polarity; /* Input Capture 2 polarity */
\r
46 u16 TIM_PWMI_ICSelection; /* PWM Input Capture selection: TI1 or TI2 */
\r
47 u16 TIM_PWMI_ICPolarity; /* PWM Input Capture Polarity */
\r
50 /* Master and slave synchronized Timer peripherals */
\r
67 /* Exported constants --------------------------------------------------------*/
\r
69 #define TIM_Mode_OCTiming 0x0001
\r
70 #define TIM_Mode_OCActive 0x0002
\r
71 #define TIM_Mode_OCInactive 0x0003
\r
72 #define TIM_Mode_OCToggle 0x0004
\r
73 #define TIM_Mode_PWM 0x0005
\r
74 #define TIM_Mode_PWMI 0x0006
\r
75 #define TIM_Mode_IC 0x0007
\r
76 #define TIM_Mode_Encoder1 0x0008
\r
77 #define TIM_Mode_Encoder2 0x0009
\r
78 #define TIM_Mode_Encoder3 0x000A
\r
79 #define TIM_Mode_OPM_PWM 0x000B
\r
80 #define TIM_Mode_OPM_Toggle 0x000C
\r
81 #define TIM_Mode_OPM_Active 0x000D
\r
83 /* TIM Clock Source */
\r
84 #define TIM_ClockSource_Internal 0x0001
\r
85 #define TIM_ClockSource_TI11 0x0002
\r
86 #define TIM_ClockSource_TI12 0x0003
\r
87 #define TIM_ClockSource_TI22 0x0004
\r
88 #define TIM_ClockSource_TI21 0x0005
\r
90 /* TIM External Clock Edge */
\r
91 #define TIM_ExtCLKEdge_Falling 0x0001
\r
92 #define TIM_ExtCLKEdge_Rising 0x0002
\r
94 /* TIM Counter Mode */
\r
95 #define TIM_CounterMode_Up 0x0000
\r
96 #define TIM_CounterMode_Down 0x0010
\r
97 #define TIM_CounterMode_CenterAligned1 0x0020
\r
98 #define TIM_CounterMode_CenterAligned2 0x0040
\r
99 #define TIM_CounterMode_CenterAligned3 0x0060
\r
102 #define TIM_Channel_1 0x0001
\r
103 #define TIM_Channel_2 0x0002
\r
104 #define TIM_Channel_ALL 0x0003
\r
106 /* TIM Polarity channel 1 */
\r
107 #define TIM_Polarity1_High 0x0001
\r
108 #define TIM_Polarity1_Low 0x0002
\r
110 /* TIM Polarity channel 2 */
\r
111 #define TIM_Polarity2_High 0x0001
\r
112 #define TIM_Polarity2_Low 0x0002
\r
114 #define TIM_RepetitivePulse_Disable 0x0005
\r
115 #define TIM_RepetitivePulse_Enable 0x0006
\r
117 /* TIM Input Capture channel 1 Selection */
\r
118 #define TIM_IC1Selection_TI1 0x0001
\r
119 #define TIM_IC1Selection_TI2 0x0002
\r
121 /* TIM Input Capture channel 2 Selection */
\r
122 #define TIM_IC2Selection_TI1 0x0001
\r
123 #define TIM_IC2Selection_TI2 0x0002
\r
125 /* TIM Input Capture channel 1 Polarity */
\r
126 #define TIM_IC1Polarity_Falling 0x0001
\r
127 #define TIM_IC1Polarity_Rising 0x0002
\r
129 /* TIM Input Capture channel 2 Polarity */
\r
130 #define TIM_IC2Polarity_Falling 0x0001
\r
131 #define TIM_IC2Polarity_Rising 0x0002
\r
133 /* TIM PWM Input IC Selection */
\r
134 #define TIM_PWMI_ICSelection_TI1 0x0001
\r
135 #define TIM_PWMI_ICSelection_TI2 0x0002
\r
137 /* TIM PWM Input IC Polarity */
\r
138 #define TIM_PWMI_ICPolarity_Falling 0x0003
\r
139 #define TIM_PWMI_ICPolarity_Rising 0x0004
\r
141 /* TIM interrupt sources */
\r
142 #define TIM_IT_IC1 0x0004
\r
143 #define TIM_IT_IC2 0x0008
\r
144 #define TIM_IT_OC1 0x0100
\r
145 #define TIM_IT_OC2 0x0200
\r
146 #define TIM_IT_Update 0x0001
\r
147 #define TIM_IT_GlobalUpdate 0x1001
\r
149 /* TIM DMA sources */
\r
150 #define TIM_DMASource_IC1 0x0004
\r
151 #define TIM_DMASource_IC2 0x0008
\r
152 #define TIM_DMASource_OC1 0x0100
\r
153 #define TIM_DMASource_OC2 0x0200
\r
154 #define TIM_DMASource_Update 0x0001
\r
156 /* TIM DMA Base address */
\r
157 #define TIM_DMABase_CR 0x0000
\r
158 #define TIM_DMABase_SCR 0x0800
\r
159 #define TIM_DMABase_IMCR 0x1000
\r
160 #define TIM_DMABase_OMR1 0x1800
\r
161 #define TIM_DMABase_RSR 0x3000
\r
162 #define TIM_DMABase_RER 0x3800
\r
163 #define TIM_DMABase_ISR 0x4000
\r
164 #define TIM_DMABase_CNT 0x4800
\r
165 #define TIM_DMABase_PSC 0x5000
\r
166 #define TIM_DMABase_ARR 0x6000
\r
167 #define TIM_DMABase_OCR1 0x6800
\r
168 #define TIM_DMABase_OCR2 0x7000
\r
169 #define TIM_DMABase_ICR1 0x9800
\r
170 #define TIM_DMABase_ICR2 0xA000
\r
173 #define TIM_FLAG_IC1 0x0004
\r
174 #define TIM_FLAG_IC2 0x0008
\r
175 #define TIM_FLAG_OC1 0x0100
\r
176 #define TIM_FLAG_OC2 0x0200
\r
177 #define TIM_FLAG_Update 0x0001
\r
179 /* TIM_ForcedAction */
\r
180 #define TIM_ForcedAction_Active 0x000A
\r
181 #define TIM_ForcedAction_InActive 0x0008
\r
183 /* TIM synchronization action */
\r
184 #define TIM_SynchroAction_Enable 0x0100
\r
185 #define TIM_SynchroAction_Update 0x0200
\r
186 #define TIM_SynchroAction_Reset 0x0000
\r
187 #define TIM_SynchroAction_OC 0x0300
\r
189 /* TIM synchronization mode */
\r
190 #define TIM_SynchroMode_Gated 0x0010
\r
191 #define TIM_SynchroMode_Trigger 0x0018
\r
192 #define TIM_SynchroMode_External 0x0008
\r
193 #define TIM_SynchroMode_Reset 0x0000
\r
195 /* OCRM bit states */
\r
196 #define TIM_OCRMState_Enable 0x0005
\r
197 #define TIM_OCRMState_Disable 0x0006
\r
199 /* Exported macro ------------------------------------------------------------*/
\r
200 /* Exported functions --------------------------------------------------------*/
\r
201 void TIM_DeInit(TIM_TypeDef *TIMx);
\r
202 void TIM_Init(TIM_TypeDef* TIMx, TIM_InitTypeDef* TIM_InitStruct);
\r
203 void TIM_StructInit(TIM_InitTypeDef *TIM_InitStruct);
\r
204 void TIM_Cmd(TIM_TypeDef *TIMx, FunctionalState Newstate);
\r
205 void TIM_ITConfig(TIM_TypeDef *TIMx, u16 TIM_IT, FunctionalState Newstate);
\r
206 void TIM_PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_Channel, FunctionalState Newstate);
\r
207 void TIM_DMAConfig(u16 TIM_DMASources, u16 TIM_OCRMState, u16 TIM_DMABase);
\r
208 void TIM_DMACmd(u16 TIM_DMASources, FunctionalState Newstate);
\r
209 void TIM_ClockSourceConfig(TIM_TypeDef *TIMx, u16 TIM_ClockSource,
\r
210 u16 TIM_ExtCLKEdge);
\r
211 void TIM_SetPrescaler(TIM_TypeDef* TIMx, u16 Prescaler);
\r
212 void TIM_SetPeriod(TIM_TypeDef* TIMx, u16 Period);
\r
213 void TIM_SetPulse(TIM_TypeDef* TIMx, u16 TIM_Channel, u16 Pulse);
\r
214 u16 TIM_GetICAP1(TIM_TypeDef *TIMx);
\r
215 u16 TIM_GetICAP2(TIM_TypeDef *TIMx);
\r
216 u16 TIM_GetPWMIPulse(TIM_TypeDef *TIMx);
\r
217 u16 TIM_GetPWMIPeriod(TIM_TypeDef *TIMx);
\r
218 void TIM_DebugCmd(TIM_TypeDef *TIMx, FunctionalState Newstate);
\r
219 void TIM_CounterModeConfig(TIM_TypeDef* TIMx, u16 TIM_CounterMode);
\r
220 void TIM_ForcedOCConfig(TIM_TypeDef* TIMx, u16 TIM_Channel,
\r
221 u16 TIM_ForcedAction);
\r
222 void TIM_ResetCounter(TIM_TypeDef* TIMx);
\r
223 void TIM_SynchroConfig(Master_TypeDef Master, Slave_TypeDef Slave,
\r
224 u16 TIM_SynchroAction, u16 TIM_SynchroMode);
\r
225 FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, u16 TIM_FLAG);
\r
226 void TIM_ClearFlag(TIM_TypeDef* TIMx, u16 TIM_FLAG);
\r
227 ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, u16 TIM_IT);
\r
228 void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, u16 TIM_IT);
\r
230 #endif /* __75x_TIM_H */
\r
232 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/
\r