TimeTask_Event.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. /**
  2. * @file TimeTask_Event.h
  3. * @author Zhang, Kai(zhangkai71@midea.com)
  4. * @brief Time task control
  5. * @version 0.1
  6. * @date 2021-09-27
  7. *
  8. * @copyright Copyright (c) 2021
  9. *
  10. */
  11. #ifndef TIMETEVENT_H
  12. #define TIMETEVENT_H
  13. #include "typedefine.h"
  14. #include "AssistCurve.h"
  15. #include "bikeinformation.h"
  16. /****************************************
  17. *
  18. * Definitions & Macros
  19. *
  20. ****************************************/
  21. #define proc_cnt 5
  22. /***************************************
  23. *
  24. * Type Definations
  25. *
  26. ***************************************/
  27. /**
  28. * @brief Type of time task
  29. *
  30. */
  31. typedef struct
  32. {
  33. void (*proc)(void); // process program
  34. SLONG timespan; // process period
  35. SLONG tick; // process tick
  36. } _op_;
  37. /**
  38. * @brief Type of assist task
  39. *
  40. */
  41. typedef enum
  42. {
  43. NoneAss = 0,
  44. TorqAss = 1,
  45. SpdAss = 2,
  46. } ASS_MODE;
  47. /****************************************
  48. *
  49. * Exported variable
  50. *
  51. ****************************************/
  52. extern _op_ Op[proc_cnt];
  53. extern BOOL event_blCurrentAssFlag;
  54. extern ASS_MODE event_enMode;
  55. /***************************************
  56. *
  57. * Function Definations
  58. *
  59. ***************************************/
  60. /**
  61. * @brief Event parameter init
  62. *
  63. */
  64. void event_voInit(void);
  65. /**
  66. * @brief Event happens every 1ms
  67. *
  68. */
  69. void Event_1ms(void);
  70. /**
  71. * @brief Event happens every 5ms
  72. *
  73. */
  74. void Event_5ms(void);
  75. /**
  76. * @brief Event happens every 10ms
  77. *
  78. */
  79. void Event_10ms(void);
  80. /**
  81. * @brief Event happens every 20ms
  82. *
  83. */
  84. void Event_20ms(void);
  85. /**
  86. * @brief Event happens every 50ms
  87. *
  88. */
  89. void Event_100ms(void);
  90. /**
  91. * @brief Event happens every 100ms
  92. *
  93. */
  94. void Event_200ms(void);
  95. /**
  96. * @brief Update timer counter (Call in the interrupt)
  97. *
  98. */
  99. void TimingTaskTimerServer(void);
  100. /**
  101. * @brief Update process (Call in the main function)
  102. *
  103. */
  104. void TimingTaskLoopServer(void);
  105. /**
  106. * @brief ass mode select
  107. *
  108. */
  109. void event_voAssCmd(void);
  110. /**
  111. * @brief get ass moveaverage torque filer
  112. *
  113. */
  114. void event_voTorqMovAve(void);
  115. /**
  116. * @brief Power down control when bike is not riding
  117. *
  118. */
  119. void event_voPowerDownCtrl(void);
  120. /**
  121. * @brief Automatic Parameter save every 10 mins
  122. *
  123. */
  124. void event_voAutParaSaveCtrl(void);
  125. void StartSelectAssistMode(void);
  126. #endif