1 /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
\r
2 * File Name : 91x_tim.h
\r
3 * Author : MCD Application Team
\r
4 * Date First Issued : 05/18/2006 : Version 1.0
\r
5 * Description : This file contains all the functions prototypes for the
\r
6 * TIM software library.
\r
7 ********************************************************************************
\r
9 * 05/24/2006 : Version 1.1
\r
10 * 05/18/2006 : Version 1.0
\r
11 ********************************************************************************
\r
12 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH
\r
13 * CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS
\r
14 * A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT
\r
15 * OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
\r
16 * OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
\r
17 * CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
18 *******************************************************************************/
\r
20 /* Define to prevent recursive inclusion -------------------------------------*/
\r
24 /* Includes ------------------------------------------------------------------*/
\r
25 #include "91x_map.h"
\r
26 #include "91x_scu.h"
\r
28 /* Exported types ----------------------------------------------------------- */
\r
30 /* TIM Init structure define */
\r
33 u16 TIM_Mode; /* Timer mode */
\r
34 u16 TIM_OC1_Modes; /* Output Compare 1 Mode: Timing or Wave */
\r
35 u16 TIM_OC2_Modes; /* Output Compare 2 Mode: Timing or Wave */
\r
36 u16 TIM_Clock_Source; /* Timer Clock source APB/SCU/EXTERNAL */
\r
37 u16 TIM_Clock_Edge; /* Timer Clock Edge: Rising or Falling Edge */
\r
38 u16 TIM_OPM_INPUT_Edge; /* Timer Input Capture 1 Edge used in OPM Mode */
\r
39 u16 TIM_ICAP1_Edge; /* Timer Input Capture 1 Edge used in ICAP1 Mode */
\r
40 u16 TIM_ICAP2_Edge; /* Timer Input Capture 2 Edge used in ICAP2 Mode */
\r
41 u8 TIM_Prescaler; /* Timer Prescaler factor */
\r
42 u16 TIM_Pulse_Level_1; /* Level applied on the Output Compare Pin 1 */
\r
43 u16 TIM_Pulse_Level_2; /* Level applied on the Output Compare Pin 2 */
\r
44 u16 TIM_Period_Level; /* Level applied during the Period of a PWM Mode */
\r
45 u16 TIM_Pulse_Length_1; /* Pulse 1 Length used in Output Compare 1 Mode */
\r
46 u16 TIM_Pulse_Length_2; /* Pulse 2 Length used in Output Compare 2 Mode */
\r
47 u16 TIM_Full_Period; /* Period Length used in PWM Mode */
\r
55 } TIM_CounterOperations;
\r
57 /* Exported constants --------------------------------------------------------*/
\r
60 #define TIM_PWMI 0x4000 /* PWM INPUT Mode */
\r
61 #define TIM_OCM_CHANNEL_1 0x0040 /* OUTPUT COMPARE CHANNEL 1 Mode */
\r
62 #define TIM_OCM_CHANNEL_2 0x0080 /* OUTPUT COMPARE CHANNEL 2 Mode */
\r
63 #define TIM_OCM_CHANNEL_12 0x00C0 /* OUTPUT COMPARE CHANNEL 1 & 2 Mode */
\r
64 #define TIM_PWM 0x0010 /* PWM Mode */
\r
65 #define TIM_OPM 0x0020 /* ONE PULSE Mode */
\r
66 #define TIM_ICAP_CHANNEL_1 0x0400 /* INPUT CAPTURE 1 Mode */
\r
67 #define TIM_ICAP_CHANNEL_2 0x0500 /* INPUT CAPTURE 2 Mode */
\r
68 #define TIM_ICAP_CHANNEL_12 0x0600 /* INPUT CAPTURE 1 & 2 Mode */
\r
70 /* TIM OUTPUT COMPARE MODE */
\r
71 #define TIM_WAVE 0x0001
\r
72 #define TIM_TIMING 0x0002
\r
74 /* TIM CLOCK SOURCE */
\r
75 #define TIM_CLK_APB 0xFFFE
\r
76 #define TIM_CLK_EXTERNAL 0x0001
\r
77 #define TIM_CLK_SCU 0x0001
\r
79 /* TIM CLOCK EDGE */
\r
80 #define TIM_CLK_EDGE_FALLING 0xFFFD
\r
81 #define TIM_CLK_EDGE_RISING 0x0002
\r
83 /* TIM OPM INPUT EDGE */
\r
84 #define TIM_OPM_EDGE_FALLING 0xFFFB
\r
85 #define TIM_OPM_EDGE_RISING 0x0004
\r
87 /* TIM ICAPA INPUT EDGE */
\r
88 #define TIM_ICAP1_EDGE_FALLING 0xFFFB
\r
89 #define TIM_ICAP1_EDGE_RISING 0x0004
\r
91 /* TIM ICAPB INPUT EDGE */
\r
92 #define TIM_ICAP2_EDGE_FALLING 0xFFF7
\r
93 #define TIM_ICAP2_EDGE_RISING 0x0008
\r
95 /* TIM OUTPUT LEVEL */
\r
96 #define TIM_HIGH 0x0200
\r
97 #define TIM_LOW 0x0300
\r
99 /* TIM OUTPUT EDGE */
\r
100 #define TIM_OUTPUT_EDGE_RISING 0x8000
\r
101 #define TIM_OUTPUT_EDGE_FALLING 0x0800
\r
104 #define TIM_PWM_OC1_Channel 0x1 /* PWM/Output Compare 1 Channel */
\r
105 #define TIM_OC2_Channel 0x2 /* Output Compare 2 Channel */
\r
107 /* TIM DMA SOURCE */
\r
108 #define TIM_DMA_IC1 0x0000 /* Input Capture Channel 1 DMA Source */
\r
109 #define TIM_DMA_OC1 0x1000 /* OUTPUT Compare Channel 1 DMA Source */
\r
110 #define TIM_DMA_IC2 0x2000 /* Input Capture Channel 2 DMA Source */
\r
111 #define TIM_DMA_OC2 0x3000 /* OUTPUT Compare Channel 2 DMA Source */
\r
113 /* TIM DMA ENABLE or DISABLE */
\r
114 #define TIM_DMA_ENABLE 0x0400 /* DMA Enable */
\r
115 #define TIM_DMA_DISABLE 0xFBFF /* DMA Disable */
\r
117 /* TIM Interruption Sources*/
\r
118 #define TIM_IT_IC1 0x8000 /* Input Capture Channel 1 Interrupt Source */
\r
119 #define TIM_IT_OC1 0x4000 /* Output Compare Channel 1 Interrupt Source */
\r
120 #define TIM_IT_TO 0x2000 /* Timer OverFlow Interrupt Source */
\r
121 #define TIM_IT_IC2 0x1000 /* Input Capture Channel 2 Interrupt Source */
\r
122 #define TIM_IT_OC2 0x0800 /* Output Compare Channel 2 Interrupt Source */
\r
125 #define TIM_FLAG_IC1 0x8000 /* Input Capture Channel 1 Flag */
\r
126 #define TIM_FLAG_OC1 0x4000 /* Output Compare Channel 1 Flag */
\r
127 #define TIM_FLAG_TO 0x2000 /* Timer OverFlow Flag */
\r
128 #define TIM_FLAG_IC2 0x1000 /* Input Capture Channel 2 Flag */
\r
129 #define TIM_FLAG_OC2 0x0800 /* Output Compare Channel 2 Flag */
\r
131 /* Module private variables --------------------------------------------------*/
\r
132 /* Exported macro ------------------------------------------------------------*/
\r
133 /* Private functions ---------------------------------------------------------*/
\r
134 /* Exported functions ------------------------------------------------------- */
\r
135 void TIM_Init(TIM_TypeDef *TIMx, TIM_InitTypeDef *TIM_InitStruct);
\r
136 void TIM_DeInit(TIM_TypeDef *TIMx);
\r
137 void TIM_StructInit(TIM_InitTypeDef *TIM_InitStruct);
\r
138 void TIM_CounterCmd(TIM_TypeDef *TIMx, TIM_CounterOperations TIM_operation);
\r
139 void TIM_PrescalerConfig(TIM_TypeDef *TIMx, u8 TIM_Prescaler);
\r
140 u8 TIM_GetPrescalerValue(TIM_TypeDef *TIMx);
\r
141 u16 TIM_GetCounterValue(TIM_TypeDef *TIMx);
\r
142 u16 TIM_GetICAP1Value(TIM_TypeDef *TIMx);
\r
143 u16 TIM_GetICAP2Value(TIM_TypeDef *TIMx);
\r
144 void TIM_SetPulse(TIM_TypeDef *TIMx,u16 TIM_Channel ,u16 TIM_Pulse);
\r
145 FlagStatus TIM_GetFlagStatus(TIM_TypeDef *TIMx, u16 TIM_Flag);
\r
146 void TIM_ClearFlag(TIM_TypeDef *TIMx, u16 TIM_Flag);
\r
147 u16 TIM_GetPWMIPulse(TIM_TypeDef *TIMx);
\r
148 u16 TIM_GetPWMIPeriod(TIM_TypeDef *TIMx);
\r
149 void TIM_ITConfig(TIM_TypeDef *TIMx, u16 TIM_IT, FunctionalState TIM_Newstate);
\r
150 void TIM_DMAConfig(TIM_TypeDef *TIMx, u16 TIM_DMA_Sources);
\r
151 void TIM_DMACmd(TIM_TypeDef *TIMx, FunctionalState TIM_Newstate);
\r
153 #endif /* __91x_TIM_H */
\r
155 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/
\r