/************************************************************************ Project: Welling Motor Control Paltform Filename: spdctrmode.c Partner Filename: spdctrmode.c Description: The header file of spdctrmode.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 STARTFSM_H #define STARTFSM_H /************************************************************************ Compiler Directives (N/A) *************************************************************************/ #ifdef _STARTFSM_C_ #define _STARTFSM_EXT #else #define _STARTFSM_EXT extern #endif /************************************************************************ Definitions & Macros *************************************************************************/ /************************************************************************ TypeDefs & Structure defines (N/A) *************************************************************************/ typedef enum { Charge = 0, InitPosDet = 1, ParDet = 2, StartUp = 3, Open2Clz = 4, ClzLoop = 5, Stop = 6, Clz2Stop = 7 } SCM_SPDMDFSM; typedef struct { SCM_SPDMDFSM state; void (*Tbcup_hook)(void); void (*Tbcdown_hook)(void); void (*Tbs_hook)(void); } SPD_STATE_HOOK; /************************************************************************ Constant Table *************************************************************************/ /************************************************************************ Exported Function Call Prototypes *************************************************************************/ _STARTFSM_EXT void InitPosDet_TbcupHook(void); _STARTFSM_EXT void ParDet_TbcupHook(void); _STARTFSM_EXT void StartUp_TbcupHook(void); _STARTFSM_EXT void Open2Clz_TbcupHook(void); _STARTFSM_EXT void ClzLoop_TbcupHook(void); _STARTFSM_EXT void Stop_TbcupHook(void); _STARTFSM_EXT void Clz2Stop_TbcupHook(void); _STARTFSM_EXT void InitPosDet_TbcdownHook(void); _STARTFSM_EXT void ParDet_TbcdownHook(void); _STARTFSM_EXT void StartUp_TbcdownHook(void); _STARTFSM_EXT void Open2Clz_TbcdownHook(void); _STARTFSM_EXT void ClzLoop_TbcdownHook(void); _STARTFSM_EXT void Stop_TbcdownHook(void); _STARTFSM_EXT void Clz2Stop_TbcdownHook(void); _STARTFSM_EXT void InitPosDet_TbsHook(void); _STARTFSM_EXT void ParDet_TbsHook(void); _STARTFSM_EXT void StartUp_TbsHook(void); _STARTFSM_EXT void Open2Clz_TbsHook(void); _STARTFSM_EXT void ClzLoop_TbsHook(void); _STARTFSM_EXT void Stop_TbsHook(void); _STARTFSM_EXT void Clz2Stop_TbsHook(void); _STARTFSM_EXT void scm_voSpdCtrMdFSM(void); _STARTFSM_EXT void Switch_speed_FSM(SPD_STATE_HOOK *in); _STARTFSM_EXT void Switch_speed_FSMInit(void); /************************************************************************ Exported Variables *************************************************************************/ #ifdef _STARTFSM_C_ _STARTFSM_EXT ULONG scm_ulStatCt = 0; // Status hold time count _STARTFSM_EXT SPD_STATE_HOOK InitPosDet_state = {InitPosDet, InitPosDet_TbcupHook, InitPosDet_TbcdownHook, InitPosDet_TbsHook}; _STARTFSM_EXT SPD_STATE_HOOK ParDet_state = {ParDet, ParDet_TbcupHook, ParDet_TbcdownHook, ParDet_TbsHook}; _STARTFSM_EXT SPD_STATE_HOOK StartUp_state = {StartUp, StartUp_TbcupHook, StartUp_TbcdownHook, StartUp_TbsHook}; _STARTFSM_EXT SPD_STATE_HOOK Open2Clz_state = {Open2Clz, Open2Clz_TbcupHook, Open2Clz_TbcdownHook, Open2Clz_TbsHook}; _STARTFSM_EXT SPD_STATE_HOOK ClzLoop_state = {ClzLoop, ClzLoop_TbcupHook, ClzLoop_TbcdownHook, ClzLoop_TbsHook}; _STARTFSM_EXT SPD_STATE_HOOK Stop_state = {Stop, Stop_TbcupHook, Stop_TbcdownHook, Stop_TbsHook}; _STARTFSM_EXT SPD_STATE_HOOK Clz2Stop_state = {Clz2Stop, Clz2Stop_TbcupHook, Clz2Stop_TbcdownHook, Clz2Stop_TbsHook}; #else _STARTFSM_EXT ULONG scm_ulStatCt; _STARTFSM_EXT SPD_STATE_HOOK InitPosDet_state; _STARTFSM_EXT SPD_STATE_HOOK ParDet_state; _STARTFSM_EXT SPD_STATE_HOOK StartUp_state; _STARTFSM_EXT SPD_STATE_HOOK Open2Clz_state; _STARTFSM_EXT SPD_STATE_HOOK ClzLoop_state; _STARTFSM_EXT SPD_STATE_HOOK Stop_state; _STARTFSM_EXT SPD_STATE_HOOK Clz2Stop_state; #endif /************************************************************************ RAM ALLOCATION (N/A) *************************************************************************/ /************************************************************************ 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! *************************************************************************/