diff --git a/conf/modules/bat_checker.xml b/conf/modules/bat_checker.xml new file mode 100644 index 0000000000..0979e1f0ec --- /dev/null +++ b/conf/modules/bat_checker.xml @@ -0,0 +1,21 @@ + + + +
+ +
+ + + + + + + + + +
+ diff --git a/sw/airborne/boards/lisa_m_1.0.h b/sw/airborne/boards/lisa_m_1.0.h index fbc668aae8..b1241db09b 100644 --- a/sw/airborne/boards/lisa_m_1.0.h +++ b/sw/airborne/boards/lisa_m_1.0.h @@ -24,6 +24,17 @@ #define LED_3_GPIO_PIN GPIO_Pin_2 #define LED_3_AFIO_REMAP ((void)0) +#define LED_4_BANK +#define LED_4_GPIO GPIOC +#define LED_4_GPIO_CLK RCC_APB2Periph_GPIOC +#define LED_4_GPIO_PIN GPIO_Pin_12 +#define LED_4_AFIO_REMAP ((void)0) + +#define LED_5_BANK +#define LED_5_GPIO GPIOC +#define LED_5_GPIO_CLK RCC_APB2Periph_GPIOC +#define LED_5_GPIO_PIN GPIO_Pin_10 +#define LED_5_AFIO_REMAP ((void)0) /* configuration for aspirin - and more generaly IMUs */ #define IMU_ACC_DRDY_RCC_GPIO RCC_APB2Periph_GPIOB diff --git a/sw/airborne/modules/bat_checker/bat_checker.c b/sw/airborne/modules/bat_checker/bat_checker.c new file mode 100644 index 0000000000..eb2e9a378a --- /dev/null +++ b/sw/airborne/modules/bat_checker/bat_checker.c @@ -0,0 +1,65 @@ +/* + * $Id$ + * + * Copyright (C) 2012 Thomas Kolb + * + * This file is part of paparazzi. + * + * paparazzi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * paparazzi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#include "bat_checker.h" +#include "generated/airframe.h" +#include "subsystems/electrical.h" +#include "led.h" + +#ifndef CRITIC_BAT_LEVEL +#error You must define CRITIC_BAT_LEVEL to use this module! +#endif + +#define WARN_BAT_LEVEL (CRITIC_BAT_LEVEL*10) + +#pragma message "Battery checker included!" + +void init_bat_checker(void) { + // nothing to do here +} + +void bat_checker_periodic(void) { + static uint8_t bat_low_counter; + if(electrical.vsupply < WARN_BAT_LEVEL) { + bat_low_counter++; + } else { + bat_low_counter = 0; + } + + if(bat_low_counter >= BAT_CHECKER_DELAY) { + LED_TOGGLE(BAT_CHECKER_LED); + bat_low_counter = BAT_CHECKER_DELAY; // hold value to prevent overflow + } else { + LED_OFF(BAT_CHECKER_LED); + } +} + +void start_bat_checker(void) { + LED_OFF(BAT_CHECKER_LED); +} + +void stop_bat_checker(void) { + // nothing to do here +} + diff --git a/sw/airborne/modules/bat_checker/bat_checker.h b/sw/airborne/modules/bat_checker/bat_checker.h new file mode 100644 index 0000000000..c981f9ed21 --- /dev/null +++ b/sw/airborne/modules/bat_checker/bat_checker.h @@ -0,0 +1,33 @@ +/* + * $Id$ + * + * Copyright (C) 2012 Thomas Kolb + * + * This file is part of paparazzi. + * + * paparazzi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * paparazzi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifndef BAT_CHECKER_H +#define BAT_CHECKER_H + +void init_bat_checker(void); +void bat_checker_periodic(void); +void start_bat_checker(void); +void stop_bat_checker(void); + +#endif // BAT_CHECKER_H