diff options
Diffstat (limited to 'stm32/app/pressure.c')
-rw-r--r-- | stm32/app/pressure.c | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/stm32/app/pressure.c b/stm32/app/pressure.c deleted file mode 100644 index 6b90d93..0000000 --- a/stm32/app/pressure.c +++ /dev/null @@ -1,79 +0,0 @@ -#include "project.h" - -#define PRESSURE GPIO0 -#define PRESSURE_PORT GPIOA -#define PRESSURE_CHANNEL ADC_CHANNEL0 -#define VREF_CHANNEL ADC_CHANNEL17 - -static unsigned poke; - -static int pressure; - -uint16_t pressure_ch (void) -{ - return pressure; -} - - - - -void pressure_tick (void) -{ - static unsigned ticker; - - ticker++; - - if (ticker < MS_TO_TICKS (2500)) - return; - - ticker = 0; - poke = 1; - -} - - - - -void pressure_dispatch (void) -{ - int v, r; - - if (!poke) return; - - poke = 0; - - if (adc_calibrate()) { - pressure = 0; - return; - } - - v = adc_convert (PRESSURE_CHANNEL); - r = adc_convert (VREF_CHANNEL); - - - /* r is 1.25 volts, transducer is 0.5V -> 0 psi 4.5V -> 100psi */ - /* 100psi is 6.8947573 bar, and we want 256ths of bar */ - - if (!r) { - pressure = 0; - return; - } - - pressure = ((v * 552) / r) - 221; - - if (pressure < 0) pressure = 0; - - printf ("QP: %d %d %d\r\n", v, r, (pressure * 100) / 256); - -} - - - -void pressure_init (void) -{ - MAP_ANALOG (PRESSURE); -} - - - - |