math_tools.h 1.7 KB

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