From e4634255795f04a1d859aa691fbc6e729973b14d Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Fri, 22 Sep 2017 07:22:16 -0600 Subject: Slightly increased resolution of VOLTAGE_FUDGE_FACTOR. My lights seemed to measure just a bit low, so hopefully this will help. It bumps up reported values by 0.05V. --- spaghetti-monster/fsm-adc.c | 3 ++- spaghetti-monster/fsm-adc.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/fsm-adc.c b/spaghetti-monster/fsm-adc.c index 02fd8c2..5be3061 100644 --- a/spaghetti-monster/fsm-adc.c +++ b/spaghetti-monster/fsm-adc.c @@ -108,7 +108,8 @@ ISR(ADC_vect) { // calculate actual voltage: volts * 10 // ADC = 1.1 * 1024 / volts // volts = 1.1 * 1024 / ADC - voltage = (uint16_t)(1.1*1024*10)/measurement + VOLTAGE_FUDGE_FACTOR; + //voltage = (uint16_t)(1.1*1024*10)/measurement + VOLTAGE_FUDGE_FACTOR; + voltage = ((uint16_t)(2*1.1*1024*10)/measurement + VOLTAGE_FUDGE_FACTOR) >> 1; #endif // if low, callback EV_voltage_low / EV_voltage_critical // (but only if it has been more than N ticks since last call) diff --git a/spaghetti-monster/fsm-adc.h b/spaghetti-monster/fsm-adc.h index 2a7c26d..b9462f7 100644 --- a/spaghetti-monster/fsm-adc.h +++ b/spaghetti-monster/fsm-adc.h @@ -30,9 +30,9 @@ #ifndef VOLTAGE_LOW #define VOLTAGE_LOW 29 #endif -// MCU sees voltage 0.X volts lower than actual, add X to readings +// MCU sees voltage 0.X volts lower than actual, add X/2 to readings #ifndef VOLTAGE_FUDGE_FACTOR -#define VOLTAGE_FUDGE_FACTOR 2 +#define VOLTAGE_FUDGE_FACTOR 5 #endif volatile uint8_t voltage; void low_voltage(); -- cgit v1.2.3