spdctrFSM.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /************************************************************************
  2. Project: Welling Motor Control Paltform
  3. Filename: spdctrmode.c
  4. Partner Filename: spdctrmode.c
  5. Description: The header file of spdctrmode.c
  6. Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems.
  7. CPU TYPE : GD32F3x0
  8. *************************************************************************
  9. Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
  10. All rights reserved.
  11. *************************************************************************
  12. *************************************************************************
  13. Revising History (ECL of this file):
  14. ************************************************************************/
  15. /************************************************************************
  16. Beginning of File, do not put anything above here except notes
  17. Compiler Directives:
  18. *************************************************************************/
  19. #ifndef STARTFSM_H
  20. #define STARTFSM_H
  21. /************************************************************************
  22. Compiler Directives (N/A)
  23. *************************************************************************/
  24. #ifdef _STARTFSM_C_
  25. #define _STARTFSM_EXT
  26. #else
  27. #define _STARTFSM_EXT extern
  28. #endif
  29. /************************************************************************
  30. Definitions & Macros
  31. *************************************************************************/
  32. /************************************************************************
  33. TypeDefs & Structure defines (N/A)
  34. *************************************************************************/
  35. typedef enum
  36. {
  37. Charge = 0,
  38. InitPosDet = 1,
  39. ParDet = 2,
  40. StartUp = 3,
  41. Open2Clz = 4,
  42. ClzLoop = 5,
  43. Stop = 6
  44. } SCM_SPDMDFSM;
  45. typedef struct
  46. {
  47. SCM_SPDMDFSM state;
  48. void (* Tbcup_hook)(void);
  49. void (* Tbcdown_hook)(void);
  50. void (* Tbs_hook)(void);
  51. } SPD_STATE_HOOK;
  52. /************************************************************************
  53. Constant Table
  54. *************************************************************************/
  55. /************************************************************************
  56. Exported Function Call Prototypes
  57. *************************************************************************/
  58. _STARTFSM_EXT void InitPosDet_TbcupHook(void);
  59. _STARTFSM_EXT void ParDet_TbcupHook(void);
  60. _STARTFSM_EXT void StartUp_TbcupHook(void);
  61. _STARTFSM_EXT void Open2Clz_TbcupHook(void);
  62. _STARTFSM_EXT void ClzLoop_TbcupHook(void);
  63. _STARTFSM_EXT void Stop_TbcupHook(void);
  64. _STARTFSM_EXT void InitPosDet_TbcdownHook(void);
  65. _STARTFSM_EXT void ParDet_TbcdownHook(void);
  66. _STARTFSM_EXT void StartUp_TbcdownHook(void);
  67. _STARTFSM_EXT void Open2Clz_TbcdownHook(void);
  68. _STARTFSM_EXT void ClzLoop_TbcdownHook(void);
  69. _STARTFSM_EXT void Stop_TbcdownHook(void);
  70. _STARTFSM_EXT void InitPosDet_TbsHook(void);
  71. _STARTFSM_EXT void ParDet_TbsHook(void);
  72. _STARTFSM_EXT void StartUp_TbsHook(void);
  73. _STARTFSM_EXT void Open2Clz_TbsHook(void);
  74. _STARTFSM_EXT void ClzLoop_TbsHook(void);
  75. _STARTFSM_EXT void Stop_TbsHook(void);
  76. _STARTFSM_EXT void scm_voSpdCtrMdFSM(void);
  77. _STARTFSM_EXT void Switch_speed_FSM(const SPD_STATE_HOOK *in);
  78. _STARTFSM_EXT void Switch_speed_FSMInit(void);
  79. /************************************************************************
  80. Exported Variables
  81. *************************************************************************/
  82. #ifdef _STARTFSM_C_
  83. _STARTFSM_EXT ULONG scm_ulStatCt = 0; // Status hold time count
  84. _STARTFSM_EXT SPD_STATE_HOOK InitPosDet_state = {InitPosDet, InitPosDet_TbcupHook, InitPosDet_TbcdownHook, InitPosDet_TbsHook};
  85. _STARTFSM_EXT SPD_STATE_HOOK ParDet_state = {ParDet, ParDet_TbcupHook, ParDet_TbcdownHook, ParDet_TbsHook};
  86. _STARTFSM_EXT SPD_STATE_HOOK StartUp_state = {StartUp, StartUp_TbcupHook, StartUp_TbcdownHook, StartUp_TbsHook};
  87. _STARTFSM_EXT SPD_STATE_HOOK Open2Clz_state = {Open2Clz, Open2Clz_TbcupHook, Open2Clz_TbcdownHook, Open2Clz_TbsHook};
  88. _STARTFSM_EXT SPD_STATE_HOOK ClzLoop_state = {ClzLoop, ClzLoop_TbcupHook, ClzLoop_TbcdownHook, ClzLoop_TbsHook};
  89. _STARTFSM_EXT SPD_STATE_HOOK Stop_state = {Stop, Stop_TbcupHook, Stop_TbcdownHook, Stop_TbsHook};
  90. #else
  91. _STARTFSM_EXT ULONG scm_ulStatCt;
  92. _STARTFSM_EXT SPD_STATE_HOOK InitPosDet_state;
  93. _STARTFSM_EXT SPD_STATE_HOOK ParDet_state;
  94. _STARTFSM_EXT SPD_STATE_HOOK StartUp_state;
  95. _STARTFSM_EXT SPD_STATE_HOOK Open2Clz_state;
  96. _STARTFSM_EXT SPD_STATE_HOOK ClzLoop_state;
  97. _STARTFSM_EXT SPD_STATE_HOOK Stop_state;
  98. #endif
  99. /************************************************************************
  100. RAM ALLOCATION (N/A)
  101. *************************************************************************/
  102. /************************************************************************
  103. Local Function Call Prototypes (N/A)
  104. *************************************************************************/
  105. /************************************************************************
  106. Flag Define (N/A)
  107. *************************************************************************/
  108. /***********************************************************************/
  109. #endif
  110. /************************************************************************
  111. Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
  112. All rights reserved.
  113. *************************************************************************
  114. End of this File (EOF)!
  115. Do not put anything after this part!
  116. *************************************************************************/