diff options
| author | Selene ToyKeeper | 2019-11-25 18:41:24 -0700 |
|---|---|---|
| committer | Selene ToyKeeper | 2019-11-25 18:41:24 -0700 |
| commit | 1ab6cd428c3b43a80ffac01f29ca0c27a438e3b1 (patch) | |
| tree | 50b646d29d4b93f3fac409371f734eea3b7f5e8a | |
| parent | made the button LED turn off in momentary mode, instead of staying on forever (diff) | |
| download | anduril-1ab6cd428c3b43a80ffac01f29ca0c27a438e3b1.tar.gz anduril-1ab6cd428c3b43a80ffac01f29ca0c27a438e3b1.tar.bz2 anduril-1ab6cd428c3b43a80ffac01f29ca0c27a438e3b1.zip | |
calibrated Noctigon K1, changed voltage divider calibration values to 10-bit (was 8-bit before)
| -rw-r--r-- | hwdef-BLF_GT.h | 4 | ||||
| -rw-r--r-- | hwdef-Emisar_D1Sv2.h | 6 | ||||
| -rw-r--r-- | hwdef-Mateminco_MF01S.h | 4 | ||||
| -rw-r--r-- | spaghetti-monster/fsm-adc.c | 2 |
4 files changed, 9 insertions, 7 deletions
diff --git a/hwdef-BLF_GT.h b/hwdef-BLF_GT.h index dd8d80a..8ad99c7 100644 --- a/hwdef-BLF_GT.h +++ b/hwdef-BLF_GT.h @@ -46,10 +46,10 @@ // Raw ADC readings at 4.4V and 2.2V (in-between, we assume values form a straight line) #ifndef ADC_44 -#define ADC_44 184 +#define ADC_44 (184*4) #endif #ifndef ADC_22 -#define ADC_22 92 +#define ADC_22 (92*4) #endif #define TEMP_CHANNEL 0b00001111 diff --git a/hwdef-Emisar_D1Sv2.h b/hwdef-Emisar_D1Sv2.h index 856643b..d76d701 100644 --- a/hwdef-Emisar_D1Sv2.h +++ b/hwdef-Emisar_D1Sv2.h @@ -78,10 +78,12 @@ // (voltage - D1) * (R2/(R2+R1) * 256 / 1.1) // D1, R1, R2 = 0, 330, 100 #ifndef ADC_44 -#define ADC_44 235 +//#define ADC_44 981 // raw value at 4.40V +#define ADC_44 967 // manually tweaked so 4.16V will blink out 4.2 #endif #ifndef ADC_22 -#define ADC_22 116 +//#define ADC_22 489 // raw value at 2.20V +#define ADC_22 482 // manually tweaked so 4.16V will blink out 4.2 #endif #define TEMP_CHANNEL 0b00001111 diff --git a/hwdef-Mateminco_MF01S.h b/hwdef-Mateminco_MF01S.h index ad6194c..03508ab 100644 --- a/hwdef-Mateminco_MF01S.h +++ b/hwdef-Mateminco_MF01S.h @@ -46,10 +46,10 @@ // Raw ADC readings at 4.4V and 2.2V (in-between, we assume values form a straight line) #ifndef ADC_44 -#define ADC_44 234 +#define ADC_44 (234*4) #endif #ifndef ADC_22 -#define ADC_22 117 +#define ADC_22 (117*4) #endif #define TEMP_CHANNEL 0b00001111 diff --git a/spaghetti-monster/fsm-adc.c b/spaghetti-monster/fsm-adc.c index 9e52ab6..b8b00de 100644 --- a/spaghetti-monster/fsm-adc.c +++ b/spaghetti-monster/fsm-adc.c @@ -101,7 +101,7 @@ inline void ADC_off() { #ifdef USE_VOLTAGE_DIVIDER static inline uint8_t calc_voltage_divider(uint16_t value) { // use 9.7 fixed-point to get sufficient precision - uint16_t adc_per_volt = ((ADC_44<<7) - (ADC_22<<7)) / (44-22); + uint16_t adc_per_volt = ((ADC_44<<5) - (ADC_22<<5)) / (44-22); // incoming value is 8.2 fixed-point, so shift it 2 bits less uint8_t result = ((value<<5) / adc_per_volt) + VOLTAGE_FUDGE_FACTOR; return result; |
