summaryrefslogtreecommitdiffstats
path: root/uc_str912/prj_blinky_complex_startup/include/91x_mc.h
blob: b33b7c31b34cd7c4f080bf0a6ecc9cc78a7e11e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
* File Name          : 91x_mc.h
* Author             : MCD Application Team
* Date First Issued  : 05/18/2006 : Version 1.0
* Description        : This file contains all the functions prototypes for the 
*                      MC software library.
********************************************************************************
* History:
* 05/24/2006 : Version 1.1
* 05/18/2006 : Version 1.0
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __91x_MC_H
#define __91x_MC_H

/* Includes ------------------------------------------------------------------*/
#include "91x_map.h"

/* Exported types ------------------------------------------------------------*/
typedef struct
{
  u16 MC_OperatingMode;
  u16 MC_TachoMode;
  u16 MC_TachoEvent_Mode;
  u8  MC_Prescaler;
  u8  MC_ForcedPWMState;
  u16 MC_TachoPrescaler;
  u16 MC_PWMMode;
  u16 MC_Complementary;
  u16 MC_Emergency;
  u16 MC_Period;
  u16 MC_TachoPeriod;
  u16 MC_Channel;
  u16 MC_PulseU;
  u16 MC_PulseV;
  u16 MC_PulseW;
  u16 MC_PolarityUL;
  u16 MC_PolarityUH;
  u16 MC_PolarityVL;
  u16 MC_PolarityVH;
  u16 MC_PolarityWL;
  u16 MC_PolarityWH;
  u16 MC_TachoPolarity;
  u16 MC_DeadTime;
  u8  MC_RepetitionCounter;
} MC_InitTypeDef;

typedef enum { DOWN = 0, UP  = !DOWN} CountingStatus;

/* Exported constants --------------------------------------------------------*/
#define MC_Complementary_Enable   0x0001
#define MC_Complementary_Disable  0x0002

#define MC_HardwareOperating_Mode 0x0001
#define MC_SoftwareOperating_Mode 0x0002

#define MC_PWMClassical_Mode    0x0001
#define MC_PWMZeroCentered_Mode 0x0002

#define MC_Emergency_Enable  0x0001
#define MC_Emergency_Disable 0x0002

#define MC_Polarity_Inverted     0x0001
#define MC_Polarity_NonInverted  0x0002

#define MC_TachoOneShot_Mode     0x0001
#define MC_TachoContinuous_Mode  0x0002

#define MC_TachoEventEdge_None           0x0000
#define MC_TachoEventEdge_Falling        0x0001
#define MC_TachoEventEdge_Rising         0x0002
#define MC_TachoEventEdge_RisingFalling  0x0003

#define MC_Channel_U           0x0001
#define MC_Channel_V           0x0002
#define MC_Channel_W           0x0003
#define MC_Channel_ALL         0x0004


#define MC_TachoEvent_Hardware_Mode  0x0001
#define MC_TachoEvent_Software_Mode  0x0002

#define MC_IT_CMPW  0x0001
#define MC_IT_CMPV  0x0002
#define MC_IT_CMPU  0x0004
#define MC_IT_ZPC   0x0008
#define MC_IT_ADT   0x0010
#define MC_IT_OTC   0x0020
#define MC_IT_CPT   0x0040
#define MC_IT_CM0   0x0080

#define MC_FLAG_CMPW  0x0001
#define MC_FLAG_CMPV  0x0002
#define MC_FLAG_CMPU  0x0004
#define MC_FLAG_ZPC   0x0008
#define MC_FLAG_ADT   0x0010
#define MC_FLAG_OTC   0x0020
#define MC_FLAG_CPT   0x0040
#define MC_FLAG_CM0   0x0080
#define MC_FLAG_EST   0x0100
/* Exported macro ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
void MC_Init(MC_InitTypeDef* MC_InitStruct);
void MC_DeInit(void);
void MC_StructInit(MC_InitTypeDef* MC_InitStruct);
void MC_Cmd(FunctionalState NewState);
void MC_CtrlPWMOutputs(FunctionalState Newstate);
void MC_ITConfig(u16 MC_IT, FunctionalState NewState);
void MC_SetPrescaler(u8 Prescaler);
void MC_SetPeriod(u16 MC_Period);
void MC_SetPulseU(u16 MC_PulseU);
void MC_SetPulseV(u16 MC_PulseV);
void MC_SetPulseW(u16 MC_PulseW);
void MC_SetTachoCompare(u8 MC_Compare);
void MC_PWMModeConfig(u16 MC_PWMMode);
void MC_SetDeadTime(u16 MC_DeadTime);
void MC_EmergencyCmd(FunctionalState NewState);
void MC_EmergencyClear(void);
u16 MC_GetPeriod(void);
u16 MC_GetPulseU(void);
u16 MC_GetPulseV(void);
u16 MC_GetPulseW(void);
u16 MC_GetTachoCapture(void);
void MC_ClearOnTachoCapture(FunctionalState NewState);
void MC_ForceDataTransfer(u8 MC_ForcedData);
void MC_SoftwarePreloadConfig(void);
void MC_SoftwareTachoCapture(void);
CountingStatus MC_GetCountingStatus(void);
FlagStatus MC_GetFlagStatus(u16 MC_FLAG);
void MC_ClearFlag(u16 MC_FLAG);
ITStatus MC_GetITStatus(u16 MC_IT);
void MC_ClearITPendingBit(u16 MC_IT);

#endif /* __91x_MC_H */

/******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/

OpenPOWER on IntegriCloud