TimeTask_Event.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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. /***************************************
  55. *
  56. * Function Definations
  57. *
  58. ***************************************/
  59. /**
  60. * @brief Event parameter init
  61. *
  62. */
  63. void event_voInit(void);
  64. /**
  65. * @brief Event happens every 1ms
  66. *
  67. */
  68. void Event_1ms(void);
  69. /**
  70. * @brief Event happens every 5ms
  71. *
  72. */
  73. void Event_5ms(void);
  74. /**
  75. * @brief Event happens every 10ms
  76. *
  77. */
  78. void Event_10ms(void);
  79. /**
  80. * @brief Event happens every 20ms
  81. *
  82. */
  83. void Event_20ms(void);
  84. /**
  85. * @brief Event happens every 50ms
  86. *
  87. */
  88. void Event_100ms(void);
  89. /**
  90. * @brief Event happens every 100ms
  91. *
  92. */
  93. void Event_200ms(void);
  94. /**
  95. * @brief Update timer counter (Call in the interrupt)
  96. *
  97. */
  98. void TimingTaskTimerServer(void);
  99. /**
  100. * @brief Update process (Call in the main function)
  101. *
  102. */
  103. void TimingTaskLoopServer(void);
  104. /**
  105. * @brief ass mode select
  106. *
  107. */
  108. void event_voAssCmd(void);
  109. /**
  110. * @brief get ass moveaverage torque filer
  111. *
  112. */
  113. void event_voTorqMovAve(void);
  114. /**
  115. * @brief Power down control when bike is not riding
  116. *
  117. */
  118. void event_voPowerDownCtrl(void);
  119. /**
  120. * @brief Automatic Parameter save every 10 mins
  121. *
  122. */
  123. void event_voAutParaSaveCtrl(void);
  124. void StartSelectAssistMode(void);
  125. #endif