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