Skip to content

Commit

Permalink
[electrical]: extra ADC (#3134)
Browse files Browse the repository at this point in the history
  • Loading branch information
dewagter committed Oct 16, 2023
1 parent 673beb5 commit 2b89019
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions sw/airborne/modules/energy/electrical.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ static struct {
#if defined ADC_CHANNEL_CURRENT && !defined SITL
struct adc_buf current_adc_buf;
#endif
#if defined ADC_CHANNEL_CURRENT2 && !defined SITL
struct adc_buf current2_adc_buf;
#endif
#ifdef MILLIAMP_AT_FULL_THROTTLE
float nonlin_factor;
#endif
Expand Down Expand Up @@ -116,6 +119,10 @@ void electrical_init(void)
/* measure current if available, otherwise estimate it */
#if defined ADC_CHANNEL_CURRENT && !defined SITL
adc_buf_channel(ADC_CHANNEL_CURRENT, &electrical_priv.current_adc_buf, DEFAULT_AV_NB_SAMPLE);

#if defined ADC_CHANNEL_CURRENT2 && !defined SITL
adc_buf_channel(ADC_CHANNEL_CURRENT2, &electrical_priv.current2_adc_buf, DEFAULT_AV_NB_SAMPLE);
#endif
#elif defined MILLIAMP_AT_FULL_THROTTLE
PRINT_CONFIG_VAR(CURRENT_ESTIMATION_NONLINEARITY)
electrical_priv.nonlin_factor = CURRENT_ESTIMATION_NONLINEARITY;
Expand All @@ -137,6 +144,11 @@ void electrical_periodic(void)
#ifndef SITL
int32_t current_adc = electrical_priv.current_adc_buf.sum / electrical_priv.current_adc_buf.av_nb_sample;
electrical.current = MilliAmpereOfAdc(current_adc) / 1000.f;

#ifdef ADC_CHANNEL_CURRENT2
current_adc = electrical_priv.current2_adc_buf.sum / electrical_priv.current2_adc_buf.av_nb_sample;
electrical.current += MilliAmpereOfAdc2(current_adc) / 1000.f;
#endif
#endif
#elif defined MILLIAMP_AT_FULL_THROTTLE && defined COMMAND_CURRENT_ESTIMATION
/*
Expand Down

0 comments on commit 2b89019

Please sign in to comment.