diff options
| -rw-r--r-- | spaghetti-monster/fsm-adc.c | 3 | ||||
| -rw-r--r-- | spaghetti-monster/fsm-adc.h | 4 |
2 files changed, 4 insertions, 3 deletions
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(); |
