phase_current.c 873 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "bsp/adc.h"
  2. #include "foc_type.h"
  3. #define NB_OFFSET_SAMPLES 32
  4. #if 0
  5. static float __inline adc_to_current(int adc){
  6. int i_adc = (int)adc;
  7. if (i_adc > INT16_MAX){
  8. i_adc = INT16_MAX;
  9. }else if (i_adc < -INT16_MAX) {
  10. i_adc = - INT16_MAX;
  11. }
  12. return (i_adc/65535.0f * 3.3f / 1.53f / 0.33f);
  13. }
  14. #endif
  15. void phase_current_init(current_samp_t *cs) {
  16. cs->offset_sample_count = NB_OFFSET_SAMPLES;
  17. }
  18. void phase_current_offset(current_samp_t *cs) {
  19. int samples = cs->offset_sample_count;
  20. int values = 0;
  21. while(samples-- >= 0) {
  22. values += adc_sample_insert_chan();
  23. }
  24. cs->adc_offset_a = cs->adc_offset_b = cs->adc_offset_c = values/cs->offset_sample_count;
  25. }
  26. void phase_current_sample(current_samp_t *cs){
  27. }
  28. u32 get_phase_sample_point(current_samp_t *cs, phase_time_t *time, u8 sector){
  29. return 0;
  30. }
  31. void phase_current_adc_triger(current_samp_t *cs){
  32. }