summaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2011-04-16 17:01:55 +0200
committerVegard Storheil Eriksen <zyp@jvnv.net>2011-04-16 17:01:55 +0200
commitb92871fcd7203e096551879cd51a850fa585529f (patch)
treee6b2e797f3512b6444011509bf815db54041ed9b /main.cpp
parent286cecb2bf08c5538cfe13053246b0d8b78b2df4 (diff)
Enable battery monitoring.
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/main.cpp b/main.cpp
index 57d3d17..f8c203f 100644
--- a/main.cpp
+++ b/main.cpp
@@ -199,6 +199,41 @@ static ICUConfig icucfg = {
icuperiodcb
};
+static const ADCConversionGroup adcgrpcfg = {
+ FALSE,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ADC_SQR1_NUM_CH(2),
+ 0,
+ ADC_SQR3_SQ2_N(ADC_CHANNEL_IN14) | ADC_SQR3_SQ1_N(ADC_CHANNEL_IN15)
+};
+
+class ADCThread : public BaseThread<ADCThread, 128> {
+ private:
+ adcsample_t adc_samples[2];
+
+ public:
+ noreturn_t thread_main() {
+ adcStart(&ADCD1, NULL);
+
+ systime_t time = chTimeNow();
+ while (TRUE) {
+ adcStartConversion(&ADCD1, &adcgrpcfg, adc_samples, 1);
+ sensordata[12] = adc_samples[0] * 1265 / 1000;
+ sensordata[13] = adc_samples[1] * 2201 / 1000;
+
+ time += MS2ST(1000);
+ chThdSleepUntil(time);
+ }
+ }
+};
+
+ADCThread adc_thread;
+
int main(void) {
halInit();
chSysInit();
@@ -212,6 +247,8 @@ int main(void) {
i2c_thread.start();
+ adc_thread.start();
+
pwmStart(&PWMD2, &pwmcfg);
palSetPadMode(GPIOA, 0, PAL_MODE_STM32_ALTERNATE_PUSHPULL);
palSetPadMode(GPIOA, 1, PAL_MODE_STM32_ALTERNATE_PUSHPULL);