📄 bldczc.h
字号:
unsigned int Bit23 : 1; /* RESERVED */
unsigned int Bit24 : 1; /* RESERVED */
unsigned int Bit25 : 1; /* RESERVED */
unsigned int Bit26 : 1; /* RESERVED */
unsigned int Bit27 : 1; /* RESERVED */
unsigned int Bit28 : 1; /* RESERVED */
unsigned int Bit29 : 1; /* RESERVED */
unsigned int Bit30 : 1; /* RESERVED */
unsigned int Bit31 : 1; /* RESERVED */
} B;
UWord32 W32;
} bldczc_uCmdZCros; /* BldcZC Zero Crossing functions Commands,
Requests, Status Flags variable */
typedef struct
{
bldczc_uCmdZCros Cmd_ZCros; /* Zero Crossing Command variable */
UWord16 Mask_ZCInp; /* Zero Crossing Input Mask */
UWord16 Mask_ZCInpNext; /* Next step Zero Crossing Input Mask */
UWord16 Expect_ZCInpNext; /* Zero Crossing Next Expected Value */
UWord16 Expect_ZCInp; /* Zero Crossing Expecte Value */
Word16 Cntr_ZCrosOK; /* Counter OK Zero Crossing commutations */
Word16 Min_ZCrosOKStart; /* Minimal OK Zero Crossings to for Start mode */
Word16 Cntr_ZCrosErr; /* Counter succesive Error Zero Crossing commutations */
Word16 Max_ZCrosErr; /* Maximal Error Zero Crossing commutations */
UWord16 Index_ZC_Phase; /* Zero Crossing phase Index */
UWord16 Index_ZC_PhaseNext;
/* Mext Zero Crossing phase Index */
} bldczc_sStateZCros; /* Zero state Variables */
typedef union
{
struct
{
unsigned int Comput_AlgoRqFlag : 1; /* BldcZCComput Algorithm call Request Flag */
unsigned int CmtServ_AlgoRqFlag : 1; /* BldcZCCmtServ Algorithm call Request Flag */
unsigned int ZCrosServ_AlgoRqFlag : 1; /* BldcZCZcrosServ function call Request Flag */
unsigned int Timer_DrvRqFlag : 1; /* Setting Timer Driver Request Flag */
unsigned int EndStartMode_HndlrCmdFlag : 1; /* End Start Mode Hndlr Command Flag*/
unsigned int ToffComp_Timeout_InfoFlag : 1;
/* Toff period Computed
Information Flag */
unsigned int StartMode_HndlrFlag : 1; /* Start Mode Flag */
unsigned int Cmt_TimedFlag : 1; /* Commutation Timed Flag */
unsigned int CmtPreset_TimedFlag : 1; /* Commutation Preset (before Zero Crosing)
Timed Flag */
unsigned int CmtProc_TimedFlag : 1; /* Commutation Proceeding Timed Flag */
unsigned int ZCToff_TimedFlag : 1; /* Zero Crossing Time off Timed Flag */
unsigned int ZCPrepared_Timeout_InfoFlag : 1;
/* Zero Crossing for next commutation Prepared
Information Flag */
unsigned int StepPrepared_Timeout_InfoFlag : 1;
/* Cmt_Step register for next commutation Prepared
Information Flag */
unsigned int CmtProcEnd_CmdFlag : 1; /* Commutation Proceeding End Command Flag */
unsigned int ZCToffEnd_CmdFlag : 1; /* Zero Crossing Time off End Command Flag */
unsigned int ZCToffTest_Hndlr_RqFlag : 1;
/* Zero Crossing Toff passed Test
(Toff Passed before Timer was set)
Request Flag */
unsigned int ZCToffStart_CmdFlag : 1; /* Started Command Flag */
unsigned int CmtTest_Hndlr_RqFlag : 1; /* Commutation time Test handler Required Flag */
unsigned int CmtTimedStart_CmdFlag : 1; /* Commutation Timing Started Command Flag */
unsigned int MaxZCrosErr_HndlrCmdFlag : 1;
/* Maximal successive
Zero Crossing Errors >= Max_ZCrosErr Command Flag */
unsigned int Bit20 : 1; /* RESERVED */
unsigned int Bit21 : 1; /* RESERVED */
unsigned int Bit22 : 1; /* RESERVED */
unsigned int Bit23 : 1; /* RESERVED */
unsigned int Bit24 : 1; /* RESERVED */
unsigned int Bit25 : 1; /* RESERVED */
unsigned int Bit26 : 1; /* RESERVED */
unsigned int Bit27 : 1; /* RESERVED */
unsigned int Bit28 : 1; /* RESERVED */
unsigned int Bit29 : 1; /* RESERVED */
unsigned int Bit30 : 1; /* RESERVED */
unsigned int Bit31 : 1; /* RESERVED */
} B;
UWord16 W16;
} bldczc_uCmdGeneral; /* BldcZC General functions Commands,
Requests, Status Flags variable */
typedef struct
{
bldczc_uCmdGeneral Cmd_General; /* General Command variable */
} bldczc_sStateGeneral; /* Bldc Timeout and Handler state Variables */
typedef struct
{
bldczc_sStateComput State_Comput;
bldczc_sStateCmt State_Cmt;
bldczc_sStateZCros State_ZCros;
bldczc_sStateGeneral State_General;
} bldczc_sStates;
typedef enum
{
BLDCZC_SET_DEFAULT,
BLDCZC_DO_NOT_EFFECT
} bldczc_eModeInit;
typedef enum
{
BLDCZC_STARTING_M,
BLDCZC_RUNNING_M
} bldczc_eStartingMode;
typedef enum
{
BLDCZC_ACB,
BLDCZC_ABC
} bldczc_eDirection;
typedef struct
{
UWord16 * pStateCmt;
} bldczc_sZCrosInit; /* Bldc Comput Init Variables */
typedef struct
{
UWord16 Const_PerProcCmt; /* Maximal Period of Commutation Proceeding */
/* time of motor coil reverse current */
UWord16 Max_PerCmt; /* Maximal Commutation Period */
bldczc_eModeInit Mode_CoefInit; /* Set_Default/DoNotEffect Coef variables */
Frac16 Coef_CmtPrecompLShft; /* Commutation time precomputation
Coeficient Range */
Frac16 Coef_CmtPrecompFrac; /* Commutation time precomputation Coeficient */
Frac16 Coef_HlfCmt; /* Half commutation Coeficient */
Frac16 Coef_Toff; /* Init Zero Crossing off time Coeficient */
bldczc_eModeInit Mode_StateComputInit; /* Set_Default/DoNotEffect State_Comput variables
at initialization */
bldczc_eModeInit Mode_TimesInit; /* Set_Default variables Times
from Per_CmtStart /DoNotEffect */
UWord16 Per_CmtStart; /* Start Commutation periode */
UWord16 Per_ToffStart; /* period zero crossing Toff at start */
} bldczc_sComputInit; /* Bldc Comput Init Variables */
typedef Frac16 bldczc_fU_ZC3Phase[3]; /* 3 voltage phases for Zero Crossing measuring */
/* Functions Declarations */
Result bldczcHndlrInit ( bldczc_sStates *pStates,
bldczc_sTimes *pTimes,
UWord16 T_Actual,
UWord16 Start_PerProcCmt,
bldczc_eStartingMode Starting_Mode );
Result bldczcHndlr ( bldczc_sStates *pStates,
bldczc_sTimes *pTimes,
UWord16 T_Actual );
Result bldczcTimeoutIntAlg ( bldczc_sStates *pStates,
bldczc_sTimes *pTimes,
UWord16 T_Actual);
Result bldczcHndlrStop ( bldczc_sStates *pStates );
Result bldczcComputInit ( bldczc_sStateComput *pState_Comput,
bldczc_sTimes *pTimes,
UWord16 T_Actual,
bldczc_sComputInit *pComputInit );
Result bldczcComput (bldczc_sStateComput *pState_Comput, bldczc_sTimes *pTimes);
Result bldczcCmtInit ( bldczc_sStateCmt *pStateCmt,
UWord16 Start_Step_Cmt,
bldczc_eDirection Direction );
Result bldczcCmtServ ( bldczc_sStateCmt *pStateCmt );
Result bldczcZCrosInit ( bldczc_sStateZCros *pState_ZCros,
bldczc_sStateCmt *pStateCmt,
Word16 Min_ZCrosOKStart_Ini,
Word16 Max_ZCrosErr_Ini );
Result bldczcZCrosIntAlg (bldczc_sStateZCros *pState_ZCros,
UWord16 *T_ZCros,
UWord16 T_ZCSample,
UWord16 Sample_ZCInput);
Result bldczcZCrosEdgeIntAlg (bldczc_sStateZCros *pState_ZCros,
UWord16 *T_ZCros,
UWord16 T_ZCSample,
/* volatile */ Frac16 U_ZCPhaseX);
Result bldczcZCrosServ ( bldczc_sStateZCros *pState_ZCros, bldczc_sStateCmt *pStateCmt );
Result bldczcZCrosEdgeServ ( bldczc_sStateZCros *pState_ZCros,
bldczc_sStateCmt *pStateCmt,
/* volatile */ Frac16 U_ZCPhaseX );
/* DEFINITION_END */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -