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. _STARTFSM_EXT UWORD StartUp_SpiSensorTest(void);
  80. /************************************************************************
  81. Exported Variables
  82. *************************************************************************/
  83. #ifdef _STARTFSM_C_
  84. _STARTFSM_EXT ULONG scm_ulStatCt = 0; // Status hold time count
  85. _STARTFSM_EXT SPD_STATE_HOOK InitPosDet_state = {InitPosDet, InitPosDet_TbcupHook, InitPosDet_TbcdownHook, InitPosDet_TbsHook};
  86. _STARTFSM_EXT SPD_STATE_HOOK ParDet_state = {ParDet, ParDet_TbcupHook, ParDet_TbcdownHook, ParDet_TbsHook};
  87. _STARTFSM_EXT SPD_STATE_HOOK StartUp_state = {StartUp, StartUp_TbcupHook, StartUp_TbcdownHook, StartUp_TbsHook};
  88. _STARTFSM_EXT SPD_STATE_HOOK Open2Clz_state = {Open2Clz, Open2Clz_TbcupHook, Open2Clz_TbcdownHook, Open2Clz_TbsHook};
  89. _STARTFSM_EXT SPD_STATE_HOOK ClzLoop_state = {ClzLoop, ClzLoop_TbcupHook, ClzLoop_TbcdownHook, ClzLoop_TbsHook};
  90. _STARTFSM_EXT SPD_STATE_HOOK Stop_state = {Stop, Stop_TbcupHook, Stop_TbcdownHook, Stop_TbsHook};
  91. #else
  92. _STARTFSM_EXT ULONG scm_ulStatCt;
  93. _STARTFSM_EXT SPD_STATE_HOOK InitPosDet_state;
  94. _STARTFSM_EXT SPD_STATE_HOOK ParDet_state;
  95. _STARTFSM_EXT SPD_STATE_HOOK StartUp_state;
  96. _STARTFSM_EXT SPD_STATE_HOOK Open2Clz_state;
  97. _STARTFSM_EXT SPD_STATE_HOOK ClzLoop_state;
  98. _STARTFSM_EXT SPD_STATE_HOOK Stop_state;
  99. #endif
  100. /************************************************************************
  101. RAM ALLOCATION (N/A)
  102. *************************************************************************/
  103. /************************************************************************
  104. Local Function Call Prototypes (N/A)
  105. *************************************************************************/
  106. /************************************************************************
  107. Flag Define (N/A)
  108. *************************************************************************/
  109. /***********************************************************************/
  110. #endif
  111. /************************************************************************
  112. Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
  113. All rights reserved.
  114. *************************************************************************
  115. End of this File (EOF)!
  116. Do not put anything after this part!
  117. *************************************************************************/