Browse Source

drivers: AeroFC: Add more leds

Also change the initial state of the leds to off.
sbg
José Roberto de Souza 8 years ago committed by Lorenz Meier
parent
commit
aa8fa2ae05
  1. 52
      src/drivers/boards/aerofc-v1/aerofc_led.c
  2. 6
      src/drivers/boards/aerofc-v1/board_config.h

52
src/drivers/boards/aerofc-v1/aerofc_led.c

@ -63,45 +63,57 @@ __END_DECLS @@ -63,45 +63,57 @@ __END_DECLS
__EXPORT void led_init(void)
{
/* Configure LED1-2 GPIOs for output */
/* Configure LED0-3 GPIOs for output */
stm32_configgpio(GPIO_LED0);
stm32_configgpio(GPIO_LED1);
stm32_configgpio(GPIO_LED2);
stm32_configgpio(GPIO_LED3);
}
__EXPORT void led_on(int led)
static uint32_t _led_param_get(int led)
{
if (led == 0) {
/* Pull down to switch on */
stm32_gpiowrite(GPIO_LED1, false);
switch (led) {
case 0:
return GPIO_LED0;
case 1:
return GPIO_LED1;
case 2:
return GPIO_LED2;
case 3:
return GPIO_LED3;
}
if (led == 1) {
/* Pull down to switch on */
stm32_gpiowrite(GPIO_LED2, false);
return 0;
}
__EXPORT void led_on(int led)
{
const uint32_t param = _led_param_get(led);
if (param) {
stm32_gpiowrite(param, false);
}
}
__EXPORT void led_off(int led)
{
if (led == 0) {
/* Pull up to switch off */
stm32_gpiowrite(GPIO_LED1, true);
}
const uint32_t param = _led_param_get(led);
if (led == 1) {
/* Pull up to switch off */
stm32_gpiowrite(GPIO_LED2, true);
if (param) {
stm32_gpiowrite(param, true);
}
}
__EXPORT void led_toggle(int led)
{
if (led == 0) {
stm32_gpiowrite(GPIO_LED1, !stm32_gpioread(GPIO_LED1));
}
const uint32_t param = _led_param_get(led);
if (led == 1) {
stm32_gpiowrite(GPIO_LED2, !stm32_gpioread(GPIO_LED2));
if (param) {
stm32_gpiowrite(param, !stm32_gpioread(param));
}
}

6
src/drivers/boards/aerofc-v1/board_config.h

@ -57,8 +57,10 @@ @@ -57,8 +57,10 @@
/* PX4FMU GPIOs ***********************************************************************************/
/* LEDs */
#define GPIO_LED1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN12)
#define GPIO_LED2 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN10)
#define GPIO_LED0 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN9)
#define GPIO_LED1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN10)
#define GPIO_LED2 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN11)
#define GPIO_LED3 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN12)
#define GPIO_VDD_5V_SENSORS_EN (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN13)

Loading…
Cancel
Save