vbus_sensor.c 443 B

12345678910111213141516171819202122
  1. #include "vbus_sensor.h"
  2. #include "bsp/bsp.h"
  3. #include "bsp/adc.h"
  4. static vbus_t _vbus;
  5. void vbus_sensor_init(void){
  6. _vbus.voltage_avg = 0;
  7. _vbus.avg_count = 5;
  8. vbus_sample_voltage();
  9. }
  10. void vbus_sample_voltage(void){
  11. u32 vadc = adc_sample_regular_channel(VBUS_V_CHAN, 16);
  12. _vbus.voltage_avg = ((float)vadc)/(65536.0f) * ADC_REFERENCE_VOLTAGE / VBUS_PARTITIONING_FACTOR;
  13. }
  14. float vbus_get_voltage(void){
  15. return _vbus.voltage_avg;
  16. }