spdctrFSM.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. Clz2Stop = 7
  45. } SCM_SPDMDFSM;
  46. typedef struct
  47. {
  48. SCM_SPDMDFSM state;
  49. void (*Tbcup_hook)(void);
  50. void (*Tbcdown_hook)(void);
  51. void (*Tbs_hook)(void);
  52. } SPD_STATE_HOOK;
  53. /************************************************************************
  54. Constant Table
  55. *************************************************************************/
  56. /************************************************************************
  57. Exported Function Call Prototypes
  58. *************************************************************************/
  59. _STARTFSM_EXT void InitPosDet_TbcupHook(void);
  60. _STARTFSM_EXT void ParDet_TbcupHook(void);
  61. _STARTFSM_EXT void StartUp_TbcupHook(void);
  62. _STARTFSM_EXT void Open2Clz_TbcupHook(void);
  63. _STARTFSM_EXT void ClzLoop_TbcupHook(void);
  64. _STARTFSM_EXT void Stop_TbcupHook(void);
  65. _STARTFSM_EXT void Clz2Stop_TbcupHook(void);
  66. _STARTFSM_EXT void InitPosDet_TbcdownHook(void);
  67. _STARTFSM_EXT void ParDet_TbcdownHook(void);
  68. _STARTFSM_EXT void StartUp_TbcdownHook(void);
  69. _STARTFSM_EXT void Open2Clz_TbcdownHook(void);
  70. _STARTFSM_EXT void ClzLoop_TbcdownHook(void);
  71. _STARTFSM_EXT void Stop_TbcdownHook(void);
  72. _STARTFSM_EXT void Clz2Stop_TbcdownHook(void);
  73. _STARTFSM_EXT void InitPosDet_TbsHook(void);
  74. _STARTFSM_EXT void ParDet_TbsHook(void);
  75. _STARTFSM_EXT void StartUp_TbsHook(void);
  76. _STARTFSM_EXT void Open2Clz_TbsHook(void);
  77. _STARTFSM_EXT void ClzLoop_TbsHook(void);
  78. _STARTFSM_EXT void Stop_TbsHook(void);
  79. _STARTFSM_EXT void Clz2Stop_TbsHook(void);
  80. _STARTFSM_EXT void scm_voSpdCtrMdFSM(void);
  81. _STARTFSM_EXT void Switch_speed_FSM(SPD_STATE_HOOK *in);
  82. _STARTFSM_EXT void Switch_speed_FSMInit(void);
  83. /************************************************************************
  84. Exported Variables
  85. *************************************************************************/
  86. #ifdef _STARTFSM_C_
  87. _STARTFSM_EXT ULONG scm_ulStatCt = 0; // Status hold time count
  88. _STARTFSM_EXT SPD_STATE_HOOK InitPosDet_state = {InitPosDet, InitPosDet_TbcupHook, InitPosDet_TbcdownHook, InitPosDet_TbsHook};
  89. _STARTFSM_EXT SPD_STATE_HOOK ParDet_state = {ParDet, ParDet_TbcupHook, ParDet_TbcdownHook, ParDet_TbsHook};
  90. _STARTFSM_EXT SPD_STATE_HOOK StartUp_state = {StartUp, StartUp_TbcupHook, StartUp_TbcdownHook, StartUp_TbsHook};
  91. _STARTFSM_EXT SPD_STATE_HOOK Open2Clz_state = {Open2Clz, Open2Clz_TbcupHook, Open2Clz_TbcdownHook, Open2Clz_TbsHook};
  92. _STARTFSM_EXT SPD_STATE_HOOK ClzLoop_state = {ClzLoop, ClzLoop_TbcupHook, ClzLoop_TbcdownHook, ClzLoop_TbsHook};
  93. _STARTFSM_EXT SPD_STATE_HOOK Stop_state = {Stop, Stop_TbcupHook, Stop_TbcdownHook, Stop_TbsHook};
  94. _STARTFSM_EXT SPD_STATE_HOOK Clz2Stop_state = {Clz2Stop, Clz2Stop_TbcupHook, Clz2Stop_TbcdownHook, Clz2Stop_TbsHook};
  95. #else
  96. _STARTFSM_EXT ULONG scm_ulStatCt;
  97. _STARTFSM_EXT SPD_STATE_HOOK InitPosDet_state;
  98. _STARTFSM_EXT SPD_STATE_HOOK ParDet_state;
  99. _STARTFSM_EXT SPD_STATE_HOOK StartUp_state;
  100. _STARTFSM_EXT SPD_STATE_HOOK Open2Clz_state;
  101. _STARTFSM_EXT SPD_STATE_HOOK ClzLoop_state;
  102. _STARTFSM_EXT SPD_STATE_HOOK Stop_state;
  103. _STARTFSM_EXT SPD_STATE_HOOK Clz2Stop_state;
  104. #endif
  105. /************************************************************************
  106. RAM ALLOCATION (N/A)
  107. *************************************************************************/
  108. /************************************************************************
  109. Local Function Call Prototypes (N/A)
  110. *************************************************************************/
  111. /************************************************************************
  112. Flag Define (N/A)
  113. *************************************************************************/
  114. /***********************************************************************/
  115. #endif
  116. /************************************************************************
  117. Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
  118. All rights reserved.
  119. *************************************************************************
  120. End of this File (EOF)!
  121. Do not put anything after this part!
  122. *************************************************************************/