From 1c0ce2d750edcb4901adf704138e761c2ba9ead2 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 17 Jun 2023 11:11:24 +0200 Subject: [PATCH] real gain --- main/ble.c | 5 ++++- main/measure.h | 3 ++- main/power_profiler.c | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/main/ble.c b/main/ble.c index 64bd0a4..a834c08 100644 --- a/main/ble.c +++ b/main/ble.c @@ -352,7 +352,10 @@ void notify_update(measurements* meas){ } void notify_range(configuration* conf){ - ESP_LOGI(TAG, "notify range"); + if(!range_notify_state) + return; + + ESP_LOGI(TAG, "notify range %d", conf->range); struct os_mbuf* om = ble_hs_mbuf_from_flat(&conf->range, sizeof(conf->range)); ESP_ERROR_CHECK(ble_gattc_notify_custom(conn_handle, range_handle[CURRENT_RANGE_ID], om)); } diff --git a/main/measure.h b/main/measure.h index 0910d82..bd99a6a 100644 --- a/main/measure.h +++ b/main/measure.h @@ -7,7 +7,8 @@ typedef struct { unsigned int channel; - unsigned int gain; // x1000 + unsigned int gain; + unsigned int real_gain; } measurement_input; typedef struct { diff --git a/main/power_profiler.c b/main/power_profiler.c index 69b8211..fcd6b45 100644 --- a/main/power_profiler.c +++ b/main/power_profiler.c @@ -50,14 +50,17 @@ measurement_input inputs[] = { [X1] = { .channel = ADC1_CHANNEL_3, .gain = 1, + .real_gain = 1114, }, [X10] = { .channel = ADC1_CHANNEL_0, .gain = 10, + .real_gain = 10850, }, [X100] = { .channel = ADC1_CHANNEL_1, .gain = 100, + .real_gain = 100000, }, }; @@ -180,7 +183,8 @@ void app_main(void){ ESP_ERROR_CHECK(adc_cali_raw_to_voltage(adc_conv_h[i], val, &mv)); ESP_LOGI(TAG, "IN %d : %d mV (%lu / %lu = %lu)", i, mv, meas_res_buff[i], meas_nb_buff[i], meas_res_buff[i]/meas_nb_buff[i]); meas_volts[i] = mv; - meas_amp[i] = mv * 1000000L / ranges[main_conf.range].resistance / inputs[i].gain; + uint32_t buff = (uint64_t)mv * 1000000000L / ranges[main_conf.range].resistance / inputs[i].real_gain; + meas_amp[i] = buff; } if(meas_volts[UNDERRANGE_SRC] < UNDERRANGE_MV){