Rev 196 | 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_mc.h |
3 | * Author : MCD Application Team |
||
196 | killagreg | 4 | * Version : V2.1 |
5 | * Date : 12/22/2008 |
||
6 | * Description : This file contains all the functions prototypes for the |
||
7 | * MC firmware library. |
||
1 | ingob | 8 | ******************************************************************************** |
196 | killagreg | 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. |
||
1 | ingob | 15 | *******************************************************************************/ |
196 | killagreg | 16 | |
1 | ingob | 17 | /* Define to prevent recursive inclusion -------------------------------------*/ |
18 | #ifndef __91x_MC_H |
||
19 | #define __91x_MC_H |
||
20 | |||
21 | /* Includes ------------------------------------------------------------------*/ |
||
22 | #include "91x_map.h" |
||
23 | |||
24 | /* Exported types ------------------------------------------------------------*/ |
||
25 | typedef struct |
||
26 | { |
||
27 | u16 MC_OperatingMode; |
||
28 | u16 MC_TachoMode; |
||
29 | u16 MC_TachoEvent_Mode; |
||
30 | u8 MC_Prescaler; |
||
31 | u8 MC_ForcedPWMState; |
||
32 | u16 MC_TachoPrescaler; |
||
33 | u16 MC_PWMMode; |
||
34 | u16 MC_Complementary; |
||
35 | u16 MC_Emergency; |
||
36 | u16 MC_Period; |
||
37 | u16 MC_TachoPeriod; |
||
38 | u16 MC_Channel; |
||
39 | u16 MC_PulseU; |
||
40 | u16 MC_PulseV; |
||
41 | u16 MC_PulseW; |
||
42 | u16 MC_PolarityUL; |
||
43 | u16 MC_PolarityUH; |
||
44 | u16 MC_PolarityVL; |
||
45 | u16 MC_PolarityVH; |
||
46 | u16 MC_PolarityWL; |
||
47 | u16 MC_PolarityWH; |
||
48 | u16 MC_TachoPolarity; |
||
49 | u16 MC_DeadTime; |
||
50 | u8 MC_RepetitionCounter; |
||
51 | } MC_InitTypeDef; |
||
52 | |||
53 | typedef enum { DOWN = 0, UP = !DOWN} CountingStatus; |
||
54 | |||
55 | /* Exported constants --------------------------------------------------------*/ |
||
56 | |||
196 | killagreg | 57 | /* MC enable/disable complementary feature */ |
58 | #define MC_Complementary_Enable 0x0001 /*MC Complementary Mode Enable*/ |
||
59 | #define MC_Complementary_Disable 0x0002 /*MC Complementary Mode Disable*/ |
||
1 | ingob | 60 | |
196 | killagreg | 61 | /* MC operating modes */ |
62 | #define MC_HardwareOperating_Mode 0x0001 /* Hardware operating Mode*/ |
||
63 | #define MC_SoftwareOperating_Mode 0x0002 /* Software operating Mode*/ |
||
1 | ingob | 64 | |
196 | killagreg | 65 | /* MC PWM modes */ |
66 | #define MC_PWMClassical_Mode 0x0001 /*Classical PWM Mode*/ |
||
67 | #define MC_PWMZeroCentered_Mode 0x0002 /*Zero Centered PWM Mode*/ |
||
1 | ingob | 68 | |
69 | |||
196 | killagreg | 70 | /* MC enable/disable emergency */ |
71 | #define MC_Emergency_Enable 0x0001 /*MC Emergency Enable*/ |
||
72 | #define MC_Emergency_Disable 0x0002 /*MC Emergency Disable*/ |
||
1 | ingob | 73 | |
74 | |||
196 | killagreg | 75 | /* MC forced PWM state */ |
76 | #define MC_Polarity_Inverted 0x0001 /*PWM signal polarity inverted*/ |
||
77 | #define MC_Polarity_NonInverted 0x0002 /*PWM signal polarity non-inverted*/ |
||
1 | ingob | 78 | |
79 | |||
196 | killagreg | 80 | /* MC tacho modes */ |
81 | #define MC_TachoOneShot_Mode 0x0001 /*One Shot Tacho Mode*/ |
||
82 | #define MC_TachoContinuous_Mode 0x0002 /*Continuous Tacho Mode*/ |
||
1 | ingob | 83 | |
196 | killagreg | 84 | |
85 | /* MC tacho polarity */ |
||
86 | #define MC_TachoEventEdge_None 0x0000 /* Edge None */ |
||
87 | #define MC_TachoEventEdge_Falling 0x0001 /* Falling Edge */ |
||
88 | #define MC_TachoEventEdge_Rising 0x0002 /* Rising Edge */ |
||
89 | #define MC_TachoEventEdge_RisingFalling 0x0003 /* Rising and falling Edge */ |
||
1 | ingob | 90 | |
196 | killagreg | 91 | /* MC channels */ |
92 | #define MC_Channel_U 0x0001 /* Channel U */ |
||
93 | #define MC_Channel_V 0x0002 /* Channel V */ |
||
94 | #define MC_Channel_W 0x0003 /* Channel W */ |
||
95 | #define MC_Channel_ALL 0x0004 /* All Channels */ |
||
96 | |||
97 | /* MC tacho event mode */ |
||
98 | #define MC_TachoEvent_Hardware_Mode 0x0001 /*Hardware operating Mode*/ |
||
99 | #define MC_TachoEvent_Software_Mode 0x0002 /*Software operating Mode*/ |
||
100 | |||
101 | /* MC interrupts */ |
||
102 | #define MC_IT_CMPW 0x0001 /* Compare W interrupt */ |
||
103 | #define MC_IT_CMPV 0x0002 /* Compare V interrupt */ |
||
104 | #define MC_IT_CMPU 0x0004 /* Compare U interrupt */ |
||
105 | #define MC_IT_ZPC 0x0008 /* Zero of PWM counter interrupt */ |
||
106 | #define MC_IT_ADT 0x0010 /* Automatic data transfer interrupt */ |
||
107 | #define MC_IT_OTC 0x0020 /* Overflow of tacho counter interrupt */ |
||
108 | #define MC_IT_CPT 0x0040 /* Capture of tacho counter interrupt */ |
||
109 | #define MC_IT_CM0 0x0080 /* Compare 0 interrupt */ |
||
110 | |||
111 | /* MC flags */ |
||
112 | #define MC_FLAG_CMPW 0x0001 /* Compare W pending bit */ |
||
113 | #define MC_FLAG_CMPV 0x0002 /* Compare V pending bit */ |
||
114 | #define MC_FLAG_CMPU 0x0004 /* Compare U pending bit */ |
||
115 | #define MC_FLAG_ZPC 0x0008 /* Zero of PWM counter pending bit */ |
||
116 | #define MC_FLAG_ADT 0x0010 /* Automatic data transfer pending bit */ |
||
117 | #define MC_FLAG_OTC 0x0020 /* Overflow of tacho counter pending bit */ |
||
118 | #define MC_FLAG_CPT 0x0040 /* Capture of tacho counter pending bit */ |
||
119 | #define MC_FLAG_CM0 0x0080 /* Compare 0 pending bit */ |
||
120 | #define MC_FLAG_EST 0x0100 /* Emergency stop pending bit */ |
||
121 | |||
122 | /* MC lock levels */ |
||
123 | #define MC_LockLevel0 0x0001 /* Level0 */ |
||
124 | #define MC_LockLevel1 0x0002 /* Level1 */ |
||
125 | #define MC_LockLevel2 0x0004 /* Level2 */ |
||
126 | #define MC_LockLevel3 0x0008 /* Level3 */ |
||
127 | #define MC_LockLevel4 0x0010 /* Level4 */ |
||
128 | |||
129 | /* MC counters */ |
||
130 | #define MC_DT_Counter 0x0010 /*Dead time counter*/ |
||
131 | #define MC_PWM_Counter 0x0020 /*PWM counter*/ |
||
132 | |||
133 | |||
134 | /* MC double update mode feature */ |
||
135 | #define MC_DUM 0x0001 /*Double update mode */ |
||
136 | |||
137 | |||
138 | /* MC Trigger events to ADC conversion */ |
||
139 | #define MC_ZPC 0x0004 /*Zero of PWM counter trigger event*/ |
||
140 | #define MC_CM0 0x0008 /*Compare 0 of PWM trigger event*/ |
||
141 | #define MC_ADT 0x000C /*Automatic Data Transfer trigger event */ |
||
142 | |||
143 | |||
144 | |||
145 | |||
1 | ingob | 146 | /* Exported macro ------------------------------------------------------------*/ |
147 | /* Exported functions --------------------------------------------------------*/ |
||
148 | void MC_Init(MC_InitTypeDef* MC_InitStruct); |
||
149 | void MC_DeInit(void); |
||
150 | void MC_StructInit(MC_InitTypeDef* MC_InitStruct); |
||
151 | void MC_Cmd(FunctionalState NewState); |
||
152 | void MC_CtrlPWMOutputs(FunctionalState Newstate); |
||
153 | void MC_ITConfig(u16 MC_IT, FunctionalState NewState); |
||
154 | void MC_SetPrescaler(u8 Prescaler); |
||
155 | void MC_SetPeriod(u16 MC_Period); |
||
156 | void MC_SetPulseU(u16 MC_PulseU); |
||
157 | void MC_SetPulseV(u16 MC_PulseV); |
||
158 | void MC_SetPulseW(u16 MC_PulseW); |
||
159 | void MC_SetTachoCompare(u8 MC_Compare); |
||
160 | void MC_PWMModeConfig(u16 MC_PWMMode); |
||
161 | void MC_SetDeadTime(u16 MC_DeadTime); |
||
162 | void MC_EmergencyCmd(FunctionalState NewState); |
||
163 | void MC_EmergencyClear(void); |
||
164 | u16 MC_GetPeriod(void); |
||
165 | u16 MC_GetPulseU(void); |
||
166 | u16 MC_GetPulseV(void); |
||
167 | u16 MC_GetPulseW(void); |
||
168 | u16 MC_GetTachoCapture(void); |
||
169 | void MC_ClearOnTachoCapture(FunctionalState NewState); |
||
170 | void MC_ForceDataTransfer(u8 MC_ForcedData); |
||
171 | void MC_SoftwarePreloadConfig(void); |
||
172 | void MC_SoftwareTachoCapture(void); |
||
173 | CountingStatus MC_GetCountingStatus(void); |
||
174 | FlagStatus MC_GetFlagStatus(u16 MC_FLAG); |
||
175 | void MC_ClearFlag(u16 MC_FLAG); |
||
176 | ITStatus MC_GetITStatus(u16 MC_IT); |
||
177 | void MC_ClearITPendingBit(u16 MC_IT); |
||
178 | void MC_ClearPWMCounter(void); |
||
179 | void MC_ClearTachoCounter(void); |
||
196 | killagreg | 180 | void MC_Lock(u16 MC_LockLevel); |
181 | void MC_CounterModeConfig(u16 MC_Counter); |
||
182 | void MC_DoubleUpdateMode(FunctionalState NewState); |
||
183 | void MC_ADCTrigger(u16 IMC_Event, FunctionalState NewState); |
||
184 | void MC_EnhancedStop(FunctionalState NewState); |
||
185 | void MC_EmergencyStopPolarity(FunctionalState NewState); |
||
186 | void MC_DebugOutputProtection(FunctionalState NewState); |
||
1 | ingob | 187 | |
188 | #endif /* __91x_MC_H */ |
||
189 | |||
196 | killagreg | 190 | /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/ |
1 | ingob | 191 |