samples.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "foc/samples.h"
  2. #include "bsp/bsp.h"
  3. #include "bsp/adc.h"
  4. #include "math/fast_math.h"
  5. #include "math/fix_math.h"
  6. #include "os/os_task.h"
  7. #include "foc/foc_config.h"
  8. typedef struct {
  9. float value;
  10. float filted_value;
  11. float lowpass;
  12. s16 fix_value;
  13. }samples_t;
  14. static void sample_vbus(void);
  15. static void sample_throttle(void);
  16. static u32 sample_task(void *);
  17. static samples_t _vbus;
  18. static samples_t _throttle;
  19. void samples_init(void){
  20. _vbus.filted_value = (MAX_vDC);
  21. _vbus.value = (MAX_vDC);
  22. _vbus.lowpass = (0.2f);
  23. _throttle.filted_value = (0);
  24. _throttle.value = (0);
  25. _throttle.lowpass = (0.2f);
  26. sample_throttle();
  27. sample_vbus();
  28. shark_task_create(sample_task, NULL);
  29. }
  30. float get_vbus_float(void) {
  31. return (float)((s32)(_vbus.filted_value * 100.0f)/100.0f);
  32. }
  33. s16 get_vbus_sfix5(void){
  34. return _vbus.fix_value;
  35. }
  36. float get_throttle_float(void) {
  37. return 0.0f;//(float)((s32)(_throttle.filted_value * 100.0f)/100.0f);
  38. }
  39. static u32 sample_task(void *param) {
  40. sample_vbus();
  41. sample_throttle();
  42. return 0;
  43. }
  44. static void sample_vbus(void){
  45. s32 vadc = adc_sample_regular_channel(VBUS_V_CHAN, 16);
  46. float fix_vbus = ((float)vadc * ADC_REFERENCE_VOLTAGE * 45.0F / 4096.0F);//1:44
  47. LowPass_Filter(_vbus.filted_value, (fix_vbus), _vbus.lowpass);
  48. _vbus.fix_value = S16Q5toF(_vbus.filted_value);
  49. }
  50. static void sample_throttle(void){
  51. s32 vadc = adc_sample_regular_channel(THROTTLE_CHAN, 16);
  52. float fix_V = ((float)vadc * ADC_REFERENCE_VOLTAGE * 45.0F / 4096.0F);//1:44
  53. LowPass_Filter(_throttle.filted_value, (fix_V), _throttle.lowpass);
  54. _throttle.fix_value = S16Q5toF(_throttle.filted_value);
  55. }