math_tools.h 1.7 KB

12345678910111213141516171819202122232425262728293031
  1. #ifndef __FILTER_H
  2. #define __FILTER_H
  3. #include "stm32f1xx_hal.h"
  4. #include "math.h"
  5. #include "string.h"
  6. extern uint16_t MovingAverageFilter(uint16_t InputData, uint16_t* Array, uint16_t Length);
  7. extern uint16_t MovingMiddleFilter(uint16_t InputData, uint16_t* Array, uint16_t Length);
  8. extern uint16_t GetAverageData(uint16_t* Input, uint16_t Length);
  9. extern uint16_t GetMiddleData(uint16_t* Input, uint16_t Length);
  10. extern uint16_t Function_Linear_3Stage(uint16_t Th1, int16_t K1, uint16_t Th2, int16_t K2, uint16_t InputData);
  11. extern uint16_t Coefficient_GainCal(uint16_t Min, uint16_t Max, uint16_t Th, uint16_t InputData);
  12. extern uint16_t TriangleWaveGenerate(uint32_t Time_Zero, uint16_t Time1, uint16_t Time2, uint16_t PeakValue);
  13. extern uint16_t SquareWaveGenerate(uint32_t Time_Zero, uint16_t Time1, uint16_t Time2, uint16_t PeakValue);
  14. extern uint16_t RampWaveGenerate(uint32_t Time_Zero, uint16_t Time1, uint16_t PeakValue);
  15. extern uint16_t GetMaxData(uint16_t* Array, uint16_t Length);
  16. extern uint16_t GetMinData(uint16_t* Array, uint16_t Length);
  17. extern uint32_t GetStandardDeviation(uint16_t* Input, uint16_t Length);
  18. extern TrueOrFalse_Flag_Struct_t CheckIsHasDouble(uint8_t* Array, uint16_t Length);
  19. extern uint32_t StepCalc(int16_t V_max, \
  20. int16_t V_Tc, \
  21. int16_t V_AccDecT);
  22. extern int16_t accDecProcess(int16_t V_Set, \
  23. uint32_t V_AccStep, \
  24. uint32_t V_DecStep, \
  25. int32_t* V_SetMiddle);
  26. extern uint16_t Standard_deviation_aver(uint16_t *data,uint8_t len, uint16_t *pAver);
  27. extern uint8_t CheckArrayIs0(uint8_t* Data, uint16_t Len);
  28. extern void MinToMax(uint16_t* Input, uint16_t Length);
  29. #endif