/************************************************************************ Project: Welling Motor Control Paltform Filename: alarm.h Partner Filename: alarm.c Description: The header file of alarm.c Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems. CPU TYPE : GD32F3x0 ************************************************************************* Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* ************************************************************************* Revising History (ECL of this file): ************************************************************************/ /************************************************************************ Beginning of File, do not put anything above here except notes Compiler Directives: *************************************************************************/ #ifndef ALARM_H #define ALARM_H /************************************************************************ Compiler Directives (N/A) *************************************************************************/ #ifdef _ALARM_C_ #define _ALARM_EXT #else #define _ALARM_EXT extern #endif /************************************************************************ Definitions & Macros *************************************************************************/ #define ALM_CODE_DEFAULT \ { \ 0 \ } // Default value of ALM_CODE #define ALM_ACTION_DEFAULT \ { \ 0 \ } // Default value of ALM_ACTION #define ALM_IN_DEFAULT \ { \ FALSE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ } // Default value of ALM_IN_DEFAULT #define ALM_DETECT_COUNT_DEFAULT \ { \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ } // Default value of ALM_DETECT_COUNT #define ALM_STOP_COUNT_DEFAULT \ { \ 0, 0, 0, 0, 0, 0 \ } // Default value of ALM_STOP_COUNT #define ALM_RECOVER_COUNT_DEFAULT \ { \ 0, 0, 0, 0, 0, 0, 0, 0 \ } // Default value of ALM_RECOVER_COUNT #define ALM_DETECTBC_COF_DEFAULT \ { \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ } // Default value of ALM_DETECTBC_COF #define ALM_DETECTBS_COF_DEFAULT \ { \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ } // Default value of ALM_DETECTBS_COF #define ALM_STOPTBC_COF_DEFAULT \ { \ 0, 0, 0, 0, 0, 0, 0 \ } // Default value of ALM_STOPTBC_COF #define ALM_RESET_COF_DEFAULT \ { \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ } // Default value of ALM_RESET_COF #define ALM_DETECT200MS_COF_DEFAULT \ { \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\ } // Default value of ALM_DETECT200MS_COF #define ALM_RESET1MS_COF_DEFAULT \ { \ 0, 0, 0, 0, 0, 0, 0 \ } // Default value of ALM_RESET1MS_COF #define ALM_BIKE_IN_DEFAULT \ { \ 0, 0, 0, 0, 0, 0, 0, FALSE, FALSE, FALSE, FALSE \ } // Default value of ALM_BIKE_IN_DEFAULT /************************************************************************ TypeDefs & Structure defines (N/A) *************************************************************************/ typedef union { struct { // bit description UWORD IPMFlt : 1; // 0 IPM fault UWORD OvrCur : 1; // 1 Over current UWORD CritOvrVlt : 1; // 2 Critical over voltage UWORD OvrVlt : 1; // 3 Over voltage UWORD UndrVlt : 1; // 4 under voltage UWORD OvrSpd : 1; // 5 Over speed UWORD OvrLoad : 1; // 6 Over load UWORD IPMOvrHeat : 1; // 7 IPM over heat UWORD HallLoss : 1; // 8 Hall loss UWORD PhsLoss : 1; // 9 Phase loss UWORD RotorLock : 1; // 10 Rotor lock UWORD MotorOvrHeat : 1; // 11 Motor over heat UWORD CommOvrTm : 1; // 12 Communication over time UWORD ADCOffsetFlt : 1; // 13 ADC Self Detecting Fault UWORD Rsvd1 : 1; // 14 Reserved UWORD Rsvd2 : 1; // 15 Reserved } bit; UWORD all; } ALM_CODE; typedef union { struct { // bit UWORD BikeSpdSen : 1; // 0 UWORD CadenceSen : 1; // 1 UWORD TorqSen : 1; // 2 UWORD Throttle : 1; // 3 UWORD PCBNTC : 1; // 4 UWORD MotorNTC : 1; // 5 UWORD Rsvd1 : 1; // 6 UWORD Rsvd2 : 1; // 7 UWORD Rsvd3 : 1; // 8 UWORD Rsvd4 : 1; // 9 UWORD Rsvd5 : 1; // 10 UWORD Rsvd6 : 1; // 11 UWORD Rsvd7 : 1; // 12 UWORD Rsvd8 : 1; // 13 UWORD Rsvd9 : 1; // 14 UWORD Rsvd10 : 1; // 15 } bit; UBYTE all; } ALM_BIKE_CODE; typedef union { struct { // bit description UWORD ThrPhsShrtFrc : 1; // 0 Three phase short force UWORD PWMOff : 1; // 1 PWM disable UWORD ThrPhsShrt : 1; // 2 Three phase short UWORD SlowDwn : 1; // 3 Slow down to stop UWORD Rsvd1 : 12; // 4-15 Reserved } bit; UWORD all; } ALM_ACTION; typedef struct { BOOL blADCInitOvrFlg; UWORD uwIpeakPu; // Q14 UWORD uwURegpeakPu; // Q14 SWORD swMotorPwrInWt; // unit: w UWORD uwIaAbsPu; // Q14 UWORD uwIbAbsPu; // Q14 UWORD uwIcAbsPu; // Q14 SWORD swIalhpaPu; // Q14 SWORD swIbetaPu; // Q14 SWORD swIqRefPu; // Q14 UWORD uwVdcPu; // Q14 UWORD uwVdcCompPu; // Q14 UWORD uwSpdFbkLpfAbsPu; // Q15 UWORD uwSpdRefAbsPu; // Q15 SWORD swIPMTempCe; // Not Pu, centigrade UWORD uwMotorTempCe; // Not Pu, centigrade UWORD uwIaOffset; // Ia offset value UWORD uwIbOffset; // Ib offset value UWORD uwIcOffset; // Ib offset value UWORD uwIdcOffset; // Idc offset value UWORD uwSectorNum; // Hall Value } ALM_IN; typedef struct { ULONG ulIa_Filter; ULONG ulIb_Filter; ULONG ulIc_Filter; }IABCSTRUCT; typedef struct { ULONG ulOvrCur; ULONG ulOvrVltLvl1; ULONG ulUndrVltLvl1; ULONG ulOvrSpd; ULONG ulIPMOvrHeat; ULONG ulIPMOvrHeat1; ULONG ulMotorOvrHeat; ULONG ulMotorOvrHeat1; ULONG ulPhsALoss; ULONG ulPhsBLoss; ULONG ulPhsCLoss; SLONG slRotorLock; ULONG ulHallLoss; ULONG ulBikeSpeedFltCnt; ULONG ulCadFreFltCnt; UWORD uwBikeSpdFlt; UWORD uwCadenceFlt; UWORD uwTorqFlt; UWORD uwThrottleFlt; UWORD uwPCBNTCFlt; UWORD uwMotorNTCFlt; } ALM_DETECT_COUNT; typedef enum { Alm_Stop = 0, Alm_VarClc = 1, Alm_Reset = 2, } ALM_FSM_STATUS; typedef struct { ULONG ulThrPhsShrtFrc; ULONG ulPWMOff; ULONG ulPWMOffShrtSw; ULONG ulShrtPWMOffSw; ULONG ulThrPhsShrt; UWORD uwRotorStopCnt; ULONG ulBikePWMOff; } ALM_STOP_COUNT; typedef struct { ULONG ulGlbl; ULONG ulOvrVlt; ULONG ulOvrVlt1; ULONG ulUndrVlt; ULONG ulUndrVlt1; ULONG ulIPMOC; ULONG ulIPMOvrHeat; ULONG ulIPMOvrHeat1; ULONG ulMotorOvrHeat; ULONG ulMotorOvrHeat1; ULONG ulBikeGlbl; ULONG ulBikeSpdFlt; ULONG ulCadenceFlt; ULONG ulTorqFlt; ULONG ulThrottleFlt; ULONG ulPCBNTCFlt; ULONG ulMotorNTCFlt; } ALM_RECOVER_COUNT; typedef struct { // input of "alm_voDetecTBC" ULONG ulOvrCurValPu; // ALM_OVR_CNT_VAL ULONG ulOvrCurValCt; // ALM_OVR_CNT_TM SLONG slAdcDetHigValPu; // ALM_ADC_DETE_HIG_VAL SLONG slAdcDetLowValPu; // ALM_ADC_DETE_LOW_VAL ULONG ulPhsLossValPu; // ALM_PHS_LOSS_VAL ULONG ulPhsLossValCt; // ALM_PHS_LOSS_TM ULONG slRotorLockSpdK; // ALM_ROTOR_LOCK_SPD_K SLONG slRotorLockValCt; // ALM_ROTOR_LOCK_TM SLONG slIqRefLpfAbsValPu; // alm_pvt_swIqRefLpfAbsPu SLONG slSpdFbLpfAbsValPu; // alm_pvt_swSpdFbLpfAbsPu UWORD uwRsPu; UWORD uwPbWt; } ALM_DETECTBC_COF; typedef struct { UWORD uwFTbcHz; UWORD uwIbAp; /* unit: 0.01A, Current base */ UWORD uwUbVt; UWORD uwOvrCurIa; // ALM_OVR_CNT_VAL UWORD uwOvrCurTu; // ALM_OVR_CNT_TM UWORD uwAdcDetHigVt; // ALM_ADC_DETE_HIG_VAL UWORD uwAdcDetLowVt; // ALM_ADC_DETE_LOW_VAL UWORD uwPhsLossVt; // ALM_PHS_LOSS_VAL UWORD uwPhsLossTs; // ALM_PHS_LOSS_TM UWORD uwRotorLockSpdK; // ALM_ROTOR_LOCK_SPD_K UWORD uwRotorLockTs; // ALM_ROTOR_LOCK_TM SWORD swIqRefLpfAbsAp; // slIqRefLpfAbsValPu SWORD swSpdFbLpfAbsRpm; // slSpdFbLpfAbsValPu UWORD uwPairs; UWORD uwFbHz; UWORD uwMtRsOm; } ALM_DETECTBC_COFIN; typedef struct { // input of "alm_voDetecTBS" ULONG ulOvrVltLvl1ValPu; // ALM_OVR_VLT_LVL1_VAL ULONG ulOvrVltLvl1ValCt; // ALM_OVR_VLT_LVL1_TM ULONG ulUndrVltLvl1ValPu; // ALM_UNDR_VLT_LVL1_VAL ULONG ulUndrVltLvl1ValCt; // ALM_UNDR_VLT_LVL1_TM SLONG slOvrSpdValPu; // ALM_OVR_SPD_VAL ULONG ulOvrSpdValCt; // ALM_OVR_SPD_TM UWORD uwIPMOvrHeatRecValCe; // ALM_IPM_OVR_HEAT_REC_VAL ULONG ulIPMOvrHeatValCt; // ALM_IPM_OVR_TM UWORD uwIPMOvrHeatValCe; // ALM_IPM_OVR_HEAT_VAL UWORD uwMotorOvrHeatRecValCe; // ALM_MOTOR_OVR_HEAT_REC_VAL ULONG ulMotorOvrHeatValCt; // ALM_MOTOR_OVR_TM UWORD uwMotorOvrHeatValCe; // ALM_MOTOR_OVR_HEAT_VAL } ALM_DETECTBS_COF; typedef struct { // input of "alm_voDetecTBS" UWORD uwUbVt; /* unit: 0.1V, Voltage base */ UWORD uwFbHz; /* unit: Hz, Frequency base */ UWORD uwPairs; // Pole pairs base UWORD uwFTbsHz; UWORD uwOvrVlt1Vt; // ALM_OVR_VLT_LVL1_VAL UWORD uwOvrVlt1Tm; // ALM_OVR_VLT_LVL1_TM UWORD uwUndrVlt1Vt; // ALM_UNDR_VLT_LVL1_VAL UWORD uwUndrVlt1Tm; // ALM_UNDR_VLT_LVL1_TM UWORD uwOvrSpdRpm; // ALM_OVR_SPD_VAL UWORD uwOvrSpdTm; // ALM_OVR_SPD_TM UWORD uwIpmOvrHeatRecCe; // ALM_IPM_OVR_HEAT_REC_VAL UWORD uwIpmOvrHeatTs; // ALM_IPM_OVR_TM UWORD uwIpmOvrHeatCe; // ALM_IPM_OVR_HEAT_VAL UWORD uwMotorOvrHeatRecCe; // ALM_IPM_OVR_HEAT_REC_VAL UWORD uwMotorOvrHeatTs; // ALM_IPM_OVR_TM UWORD uwMotorOvrHeatCe; // ALM_IPM_OVR_HEAT_VAL } ALM_DETECTBS_COFIN; typedef struct { // input of "alm_voStopTBC" ULONG ulThrPhsShrtFrcValCt; // ALM_THR_PHS_SHRT_FRC_TM ULONG ulStopCurValCt; // ALM_STOP_CUR_TM ULONG ulPWMOffShrt1SwValCt; // ALM_PWMOFF_SHRT1_SW_TM ULONG ulShrtPWMOffSwValCt; ULONG ulPWMOffValCt; // ALM_PWM_OFF_TM ULONG ulThrPhsShrtNormValCt; ULONG ulOvrVltLvl1ValPu; } ALM_STOPTBC_COF; typedef struct { // input of "alm_voStopTBC" UWORD uwFTbcHz; UWORD uwIbAp; /* unit: 0.01A, Current base */ UWORD uwUbVt; /* unit: 0.1V, Voltage base */ UWORD uwThrPhsShrtFrcTs; // ALM_THR_PHS_SHRT_FRC_TM UWORD uwIPMOverCurStopTs; // ALM_IPM_OVER_CURRENT_STOP UWORD uwPwmoffShrt1SwTs; // ALM_PWMOFF_SHRT1_SW_TM UWORD uwShrtPwmoffSwTs; UWORD uwPwmOffTs; // ALM_PWM_OFF_TM UWORD uwThrPhsShrtTs; UWORD uwOvrVlt1Vt; } ALM_STOPTBC_COFIN; typedef struct { // input of "alm_voReset" ULONG ulRecAllValCt; // ALM_REC_ALL_TM ULONG ulIPMOcRecValCt; // ALM_IPM_OC_REC_TM ULONG ulOvrVltRecValPu; // ALM_OVR_VLT_REC_VAL ULONG ulOvrVltRecValCt; // ALM_OVR_VLT_REC_TM ULONG ulUndrVltRecValPu; // ALM_UNDR_VLT_REC_VAL ULONG ulUndrVltRecValCt; // ALM_UNDR_VLT_REC_TM UWORD uwIPMOvrHeatRecValCe; // ALM_IPM_OVR_HEAT_REC_VAL ULONG ulIPMOvrHeatRecValCt; // ALM_IPM_OVR_REC_TM ULONG ulIPMOvrHeatRec1ValCt; // ALM_IPM_OVR_REC_TM1 UWORD uwMotorOvrHeatRecValCe; // ALM_IPM_OVR_HEAT_REC_VAL ULONG ulMotorOvrHeatRecValCt; // ALM_IPM_OVR_REC_TM ULONG ulMotorOvrHeatRec1ValCt; // ALM_IPM_OVR_REC_TM1 } ALM_RESET_COF; typedef struct { UWORD uwUbVt; /* unit: 0.1V, Voltage base */ UWORD uwFTbcHz; UWORD uwRecAllTs; // ALM_REC_ALL_TM UWORD uwIpmOcRecTs; // ALM_IPM_OC_REC_TM UWORD uwOvrVltRecVt; // ALM_OVR_VLT_REC_VAL UWORD uwOvrVltRecTs; // ALM_OVR_VLT_REC_TM UWORD uwUndrVltRecVt; // ALM_UNDR_VLT_REC_VAL UWORD uwUndrVltRecTs; // ALM_UNDR_VLT_REC_TM UWORD uwIpmOvrHeatRecCe; // ALM_IPM_OVR_HEAT_REC_VAL UWORD uwIpmOvrHeatRecTs; // ALM_IPM_OVR_REC_TM UWORD uwIpmOvrHeatRec1Ts; // ALM_IPM_OVR_REC_TM1 UWORD uwMotorOvrHeatRecCe; // ALM_IPM_OVR_HEAT_REC_VAL UWORD uwMotorOvrHeatRecTs; // ALM_IPM_OVR_REC_TM UWORD uwMotorOvrHeatRec1Ts; // ALM_IPM_OVR_REC_TM1 } ALM_RESET_COFIN; typedef struct { UWORD uwBikeSpdFltCt; UWORD uwCadenceFltCt; UWORD uwTorqFltCt; UWORD uwThrottleFltCt; UWORD uwPCBNTCFltCt; UWORD uwMotorNTCFltCt; SWORD swMotorSpdMinPu; UWORD uwTorqMinPu; UWORD uwTorqMinReg; UWORD uwTorqMaxReg; UWORD uwThrottleMinReg; UWORD uwThrottleMaxReg; UWORD uwNTCMinReg; UWORD uwNTCMaxReg; } ALM_DETEC200MS_COF; typedef struct { UWORD uwFbHz; // unit: Hz, Frequency base UWORD uwPairs; UWORD uwFT200MSHz; UWORD uwBikeSpdFltTs; UWORD uwCadenceFltTs; UWORD uwTorqFltTs; UWORD uwThrottleFltTs; UWORD uwPCBNTCFltTs; UWORD uwMotorNTCFltTs; SWORD swMotorSpdMinRpm; UWORD uwTorqMinNm; UWORD uwTorqMinVol; UWORD uwTorqMaxVol; UWORD uwThrottleMinVol; UWORD uwThrottleMaxVol; UWORD uwNTCMinVol; UWORD uwNTCMaxVol; } ALM_DETEC200MS_COFIN; typedef struct { UWORD uwBikeSpdPu; UWORD uwCadenceFreqPu; UWORD uwTroqReg; UWORD uwTroqPu; UWORD uwThrottleReg; UWORD uwPCBNTCReg; UWORD uwMotorNTCReg; SWORD swMotorSpdAbsPu; BOOL blBikeSpdOvrFlg; BOOL blCadenceFreqOvrFlg; BOOL blThrottleExistFlg; BOOL blMotorNTCExistFlg; } ALM_BIKE_IN; typedef struct { ULONG ulRecAllValCt; ULONG ulRecBikeSpdCt; ULONG ulRecCadenceCt; ULONG ulRecTorqCt; ULONG ulRecThrottleCt; ULONG ulRecPCBNTCCt; ULONG ulRecMotorNTCCt; } ALM_RESET1MS_COF; typedef struct { UWORD uwFT1MSHz; UWORD uwBikeGlblTm; UWORD uwBikeSpdFltTm; UWORD uwCadenceFltTm; UWORD uwTorqFltTm; UWORD uwThrottleFltTm; UWORD uwPCBNTCFltTm; UWORD uwMotorNTCFltTm; } ALM_RESET1MS_COFIN; /************************************************************************ Exported Variables *************************************************************************/ #ifdef _ALARM_C_ _ALARM_EXT ALM_CODE alm_unCode = ALM_CODE_DEFAULT; _ALARM_EXT ALM_IN alm_stIn = ALM_IN_DEFAULT; _ALARM_EXT ALM_FSM_STATUS alm_enFSMStatus = Alm_Stop; _ALARM_EXT ALM_DETECTBC_COF alm_stDetectTbcCoef = ALM_DETECTBC_COF_DEFAULT; _ALARM_EXT ALM_DETECTBS_COF alm_stDetectTbsCoef = ALM_DETECTBS_COF_DEFAULT; _ALARM_EXT ALM_STOPTBC_COF alm_stStopTbcCoef = ALM_STOPTBC_COF_DEFAULT; _ALARM_EXT ALM_RESET_COF alm_stResetCoef = ALM_RESET_COF_DEFAULT; _ALARM_EXT ALM_BIKE_CODE alm_unBikeCode = ALM_CODE_DEFAULT; _ALARM_EXT ALM_BIKE_IN alm_stBikeIn = ALM_BIKE_IN_DEFAULT; _ALARM_EXT ALM_FSM_STATUS alm_enBikeFSMStatus = Alm_Stop; _ALARM_EXT ALM_RESET1MS_COF alm_stReset1MSCoef = ALM_RESET1MS_COF_DEFAULT; _ALARM_EXT ALM_DETEC200MS_COF alm_stDetect200MSCoef = ALM_DETECT200MS_COF_DEFAULT; _ALARM_EXT ALM_ACTION alm_unAction = ALM_ACTION_DEFAULT; _ALARM_EXT ALM_DETECT_COUNT alm_stDecCt = ALM_DETECT_COUNT_DEFAULT; _ALARM_EXT ALM_STOP_COUNT alm_stStopCt = ALM_STOP_COUNT_DEFAULT; _ALARM_EXT ALM_RECOVER_COUNT alm_stRecCt = ALM_RECOVER_COUNT_DEFAULT; _ALARM_EXT BOOL alm_blAlmOccrFlg = FALSE; _ALARM_EXT BOOL alm_blWarnOccrFlg = FALSE; _ALARM_EXT BOOL alm_blAlmSingleRecordDoneFlg = FALSE; #else _ALARM_EXT ALM_CODE alm_unCode; _ALARM_EXT ALM_IN alm_stIn; _ALARM_EXT ALM_FSM_STATUS alm_enFSMStatus; _ALARM_EXT ALM_DETECTBC_COF alm_stDetectTbcCoef; _ALARM_EXT ALM_DETECTBS_COF alm_stDetectTbsCoef; _ALARM_EXT ALM_STOPTBC_COF alm_stStopTbcCoef; _ALARM_EXT ALM_RESET_COF alm_stResetCoef; _ALARM_EXT ALM_BIKE_CODE alm_unBikeCode; _ALARM_EXT ALM_BIKE_IN alm_stBikeIn; _ALARM_EXT ALM_FSM_STATUS alm_enBikeFSMStatus; _ALARM_EXT ALM_RESET1MS_COF alm_stReset1MSCoef; _ALARM_EXT ALM_DETEC200MS_COF alm_stDetect200MSCoef; _ALARM_EXT ALM_ACTION alm_unAction; _ALARM_EXT ALM_DETECT_COUNT alm_stDecCt; _ALARM_EXT ALM_STOP_COUNT alm_stStopCt; _ALARM_EXT ALM_RECOVER_COUNT alm_stRecCt; _ALARM_EXT BOOL alm_blAlmOccrFlg; _ALARM_EXT BOOL alm_blWarnOccrFlg; _ALARM_EXT BOOL alm_blAlmSingleRecordDoneFlg; #endif /************************************************************************ RAM ALLOCATION (N/A) *************************************************************************/ #define alm_stDetectTbcCoefIn (*(ALM_DETECTBC_COFIN *)MN_BUFFER) #define alm_stDetectTbsCoefIn (*(ALM_DETECTBS_COFIN *)MN_BUFFER) #define alm_stStopTbcCoefIn (*(ALM_STOPTBC_COFIN *)MN_BUFFER) #define alm_stResetCoefIn (*(ALM_RESET_COFIN *)MN_BUFFER) #define alm_stDetect200MSCoefIn (*(ALM_DETEC200MS_COFIN *)MN_BUFFER) #define alm_stReset1MSCoefIn (*(ALM_RESET1MS_COFIN *)MN_BUFFER) /************************************************************************ Exported Function Call Prototypes *************************************************************************/ #ifdef _ALARM_C_ _ALARM_EXT void alm_voInit(void); _ALARM_EXT void alm_voCoef(void); _ALARM_EXT void alm_voDetecTBC(ALM_IN *in, ALM_DETECTBC_COF *coef); _ALARM_EXT void alm_voDetecTBCCoef(ALM_DETECTBC_COFIN *in, ALM_DETECTBC_COF *out); _ALARM_EXT void alm_voDetecTBS(ALM_IN *in, ALM_DETECTBS_COF *coef); _ALARM_EXT void alm_voDetecTBSCoef(ALM_DETECTBS_COFIN *in, ALM_DETECTBS_COF *out); _ALARM_EXT void alm_voHandleTBC(ALM_IN *in); _ALARM_EXT void alm_voHandleTBS(ALM_IN *in); _ALARM_EXT void alm_voStopTBCCoef(ALM_STOPTBC_COFIN *in, ALM_STOPTBC_COF *out); _ALARM_EXT void alm_voStopTBC(ALM_IN *in, ALM_STOPTBC_COF *coef); _ALARM_EXT void alm_voStopTBS(void); _ALARM_EXT void alm_voResetCoef(ALM_RESET_COFIN *in, ALM_RESET_COF *out); _ALARM_EXT void alm_voReset(ALM_IN *in, ALM_RESET_COF *coef); _ALARM_EXT void alm_voHandleRst(void); _ALARM_EXT void alm_voDetec200MSCoef(ALM_DETEC200MS_COFIN *in, ALM_DETEC200MS_COF *out); _ALARM_EXT void alm_voDetec200MS(const ALM_BIKE_IN *in, const ALM_DETEC200MS_COF *coef); _ALARM_EXT void alm_voHandle1MS(const ALM_BIKE_IN *in); _ALARM_EXT void alm_voReset1MSCoef(const ALM_RESET1MS_COFIN *in, ALM_RESET1MS_COF *out); _ALARM_EXT void alm_voReset1MS(const ALM_BIKE_IN *in, const ALM_RESET1MS_COF *coef, const ALM_DETEC200MS_COF *detctcoef); #else _ALARM_EXT void alm_voInit(void); _ALARM_EXT void alm_voCoef(void); _ALARM_EXT void alm_voDetecTBC(ALM_IN *in, ALM_DETECTBC_COF *coef); _ALARM_EXT void alm_voDetecTBCCoef(ALM_DETECTBC_COFIN *in, ALM_DETECTBC_COF *out); _ALARM_EXT void alm_voDetecTBS(ALM_IN *in, ALM_DETECTBS_COF *coef); _ALARM_EXT void alm_voDetecTBSCoef(ALM_DETECTBS_COFIN *in, ALM_DETECTBS_COF *out); _ALARM_EXT void alm_voHandleTBC(ALM_IN *in); _ALARM_EXT void alm_voHandleTBS(ALM_IN *in); _ALARM_EXT void alm_voStopTBCCoef(ALM_STOPTBC_COFIN *in, ALM_STOPTBC_COF *out); _ALARM_EXT void alm_voStopTBC(ALM_IN *in, ALM_STOPTBC_COF *coef); _ALARM_EXT void alm_voStopTBS(void); _ALARM_EXT void alm_voResetCoef(ALM_RESET_COFIN *in, ALM_RESET_COF *out); _ALARM_EXT void alm_voReset(ALM_IN *in, ALM_RESET_COF *coef); _ALARM_EXT void alm_voHandleRst(void); _ALARM_EXT void alm_voDetec200MSCoef(ALM_DETEC200MS_COFIN *in, ALM_DETEC200MS_COF *out); _ALARM_EXT void alm_voDetec200MS(const ALM_BIKE_IN *in, const ALM_DETEC200MS_COF *coef); _ALARM_EXT void alm_voHandle1MS(const ALM_BIKE_IN *in); _ALARM_EXT void alm_voReset1MSCoef(const ALM_RESET1MS_COFIN *in, ALM_RESET1MS_COF *out); _ALARM_EXT void alm_voReset1MS(const ALM_BIKE_IN *in, const ALM_RESET1MS_COF *coef, const ALM_DETEC200MS_COF *detctcoef); #endif /************************************************************************ Local Function Call Prototypes (N/A) *************************************************************************/ /************************************************************************ Flag Define (N/A) *************************************************************************/ #endif /************************************************************************ Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* End of this File (EOF)! Do not put anything after this part! *************************************************************************/