Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 43 → Rev 44

/tags/V0.12i/libstr91x/include/91x_mc.h
0,0 → 1,147
/******************** (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/22/2007 : Version 1.2
* 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);
void MC_ClearPWMCounter(void);
void MC_ClearTachoCounter(void);
 
#endif /* __91x_MC_H */
 
/******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/