From 27119bb5b2b84cfde12c5569c3b17c63f5592e8d Mon Sep 17 00:00:00 2001 From: Piotr Esden-Tempski Date: Tue, 30 Oct 2012 16:40:00 -0700 Subject: [PATCH] [led][driver] Added provisions for body LED. --- sw/airborne/arch/stm32/led_hw.h | 8 ++++++-- sw/airborne/boards/lisa_m_1.0.h | 17 +++++++++++++++++ sw/airborne/boards/lisa_m_2.0.h | 26 ++++++++++++++++++++++++++ sw/airborne/led.h | 5 +++++ 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/sw/airborne/arch/stm32/led_hw.h b/sw/airborne/arch/stm32/led_hw.h index 6d951e7353f..aaef9fd5f7d 100644 --- a/sw/airborne/arch/stm32/led_hw.h +++ b/sw/airborne/arch/stm32/led_hw.h @@ -42,11 +42,15 @@ #define _LED_GPIO_CLK(i) i #define _LED_GPIO(i) i #define _LED_GPIO_PIN(i) i +#define _LED_GPIO_ON(i) i +#define _LED_GPIO_OFF(i) i #define _LED_AFIO_REMAP(i) i #define LED_GPIO_CLK(i) _LED_GPIO_CLK(LED_ ## i ## _GPIO_CLK) #define LED_GPIO(i) _LED_GPIO(LED_ ## i ## _GPIO) #define LED_GPIO_PIN(i) _LED_GPIO_PIN(LED_ ## i ## _GPIO_PIN) +#define LED_GPIO_ON(i) _LED_GPIO_ON(LED_ ## i ## _GPIO_ON) +#define LED_GPIO_OFF(i) _LED_GPIO_OFF(LED_ ## i ## _GPIO_OFF) #define LED_AFIO_REMAP(i) _LED_AFIO_REMAP(LED_ ## i ## _AFIO_REMAP) /* set pin as output */ @@ -60,8 +64,8 @@ LED_AFIO_REMAP(i); \ } -#define LED_ON(i) { GPIO_BRR(LED_GPIO(i)) = LED_GPIO_PIN(i);} -#define LED_OFF(i) { GPIO_BSRR(LED_GPIO(i)) = LED_GPIO_PIN(i);} +#define LED_ON(i) { LED_GPIO_ON(i)(LED_GPIO(i)) = LED_GPIO_PIN(i);} +#define LED_OFF(i) { LED_GPIO_OFF(i)(LED_GPIO(i)) = LED_GPIO_PIN(i);} #define LED_TOGGLE(i) { GPIO_ODR(LED_GPIO(i)) ^= LED_GPIO_PIN(i);} #define LED_PERIODIC() {} diff --git a/sw/airborne/boards/lisa_m_1.0.h b/sw/airborne/boards/lisa_m_1.0.h index b48dc45b0ac..d7343eaf7f3 100644 --- a/sw/airborne/boards/lisa_m_1.0.h +++ b/sw/airborne/boards/lisa_m_1.0.h @@ -15,6 +15,8 @@ #define LED_1_GPIO GPIOB #define LED_1_GPIO_CLK RCC_APB2ENR_IOPBEN | RCC_APB2ENR_AFIOEN #define LED_1_GPIO_PIN GPIO4 +#define LED_1_GPIO_ON GPIO_BSRR +#define LED_1_GPIO_OFF GPIO_BSRR #define LED_1_AFIO_REMAP AFIO_MAPR |= AFIO_MAPR_SWJ_CFG_FULL_SWJ_NO_JNTRST /* blue */ @@ -24,6 +26,8 @@ #define LED_2_GPIO GPIOC #define LED_2_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_2_GPIO_PIN GPIO5 +#define LED_2_GPIO_ON GPIO_BSRR +#define LED_2_GPIO_OFF GPIO_BSRR #define LED_2_AFIO_REMAP ((void)0) /* blue */ @@ -33,6 +37,8 @@ #define LED_3_GPIO GPIOC #define LED_3_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_3_GPIO_PIN GPIO2 +#define LED_3_GPIO_ON GPIO_BSRR +#define LED_3_GPIO_OFF GPIO_BSRR #define LED_3_AFIO_REMAP ((void)0) // GPIO pins @@ -42,6 +48,8 @@ #define LED_4_GPIO GPIOC #define LED_4_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_4_GPIO_PIN GPIO12 +#define LED_4_GPIO_ON GPIO_BSRR +#define LED_4_GPIO_OFF GPIO_BSRR #define LED_4_AFIO_REMAP ((void)0) #ifndef USE_LED_5 @@ -50,8 +58,17 @@ #define LED_5_GPIO GPIOC #define LED_5_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_5_GPIO_PIN GPIO10 +#define LED_5_GPIO_ON GPIO_BSRR +#define LED_5_GPIO_OFF GPIO_BSRR #define LED_5_AFIO_REMAP ((void)0) +/* PB1, DRDY on EXT SPI connector*/ +#define LED_BODY_GPIO GPIOB +#define LED_BODY_GPIO_CLK RCC_APB2ENR_IOPBEN +#define LED_BODY_GPIO_PIN GPIO1 +#define LED_BODY_GPIO_ON GPIO_BSRR +#define LED_BODY_GPIO_OFF GPIO_BRR +#define LED_BODY_AFIO_REMAP ((void)0) /* configuration for aspirin - and more generaly IMUs */ #define IMU_ACC_DRDY_RCC_GPIO RCC_APB2ENR_IOPBEN diff --git a/sw/airborne/boards/lisa_m_2.0.h b/sw/airborne/boards/lisa_m_2.0.h index a43720622d8..3be29e948bd 100644 --- a/sw/airborne/boards/lisa_m_2.0.h +++ b/sw/airborne/boards/lisa_m_2.0.h @@ -18,6 +18,8 @@ #define LED_1_GPIO GPIOA #define LED_1_GPIO_CLK RCC_APB2ENR_IOPAEN #define LED_1_GPIO_PIN GPIO8 +#define LED_1_GPIO_ON GPIO_BRR +#define LED_1_GPIO_OFF GPIO_BSRR #define LED_1_AFIO_REMAP ((void)0) /* green, shared with JTAG_TRST */ @@ -27,6 +29,8 @@ #define LED_2_GPIO GPIOB #define LED_2_GPIO_CLK RCC_APB2ENR_IOPBEN | RCC_APB2ENR_AFIOEN #define LED_2_GPIO_PIN GPIO4 +#define LED_2_GPIO_ON GPIO_BRR +#define LED_2_GPIO_OFF GPIO_BSRR #define LED_2_AFIO_REMAP AFIO_MAPR |= AFIO_MAPR_SWJ_CFG_FULL_SWJ_NO_JNTRST /* green, shared with ADC12 (ADC_6 on connector ANALOG2) */ @@ -36,6 +40,8 @@ #define LED_3_GPIO GPIOC #define LED_3_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_3_GPIO_PIN GPIO2 +#define LED_3_GPIO_ON GPIO_BRR +#define LED_3_GPIO_OFF GPIO_BSRR #define LED_3_AFIO_REMAP ((void)0) /* red, shared with ADC15 (ADC_4 on connector ANALOG2) */ @@ -45,6 +51,8 @@ #define LED_4_GPIO GPIOC #define LED_4_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_4_GPIO_PIN GPIO5 +#define LED_4_GPIO_ON GPIO_BRR +#define LED_4_GPIO_OFF GPIO_BSRR #define LED_4_AFIO_REMAP ((void)0) /* green, on PC15 */ @@ -54,6 +62,8 @@ #define LED_5_GPIO GPIOC #define LED_5_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_5_GPIO_PIN GPIO15 +#define LED_5_GPIO_ON GPIO_BRR +#define LED_5_GPIO_OFF GPIO_BSRR #define LED_5_AFIO_REMAP ((void)0) /* @@ -63,18 +73,24 @@ #define LED_6_GPIO GPIOC #define LED_6_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_6_GPIO_PIN GPIO3 +#define LED_6_GPIO_ON GPIO_BRR +#define LED_6_GPIO_OFF GPIO_BSRR #define LED_6_AFIO_REMAP ((void)0) /* PC0, ADC10 on ADC_2 */ #define LED_7_GPIO GPIOC #define LED_7_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_7_GPIO_PIN GPIO0 +#define LED_7_GPIO_ON GPIO_BRR +#define LED_7_GPIO_OFF GPIO_BSRR #define LED_7_AFIO_REMAP ((void)0) /* PC1, ADC11 on ADC_3 */ #define LED_8_GPIO GPIOC #define LED_8_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_8_GPIO_PIN GPIO1 +#define LED_8_GPIO_ON GPIO_BRR +#define LED_8_GPIO_OFF GPIO_BSRR #define LED_8_AFIO_REMAP ((void)0) @@ -82,10 +98,20 @@ * not actual LEDS, used as GPIOs */ +/* PB1, DRDY on EXT SPI connector*/ +#define LED_BODY_GPIO GPIOB +#define LED_BODY_GPIO_CLK RCC_APB2ENR_IOPBEN +#define LED_BODY_GPIO_PIN GPIO1 +#define LED_BODY_GPIO_ON GPIO_BSRR +#define LED_BODY_GPIO_OFF GPIO_BRR +#define LED_BODY_AFIO_REMAP ((void)0) + /* PC12, on GPIO connector*/ #define LED_12_GPIO GPIOC #define LED_12_GPIO_CLK RCC_APB2ENR_IOPCEN #define LED_12_GPIO_PIN GPIO12 +#define LED_1_GPIO_ON GPIO_BRR +#define LED_1_GPIO_OFF GPIO_BSRR #define LED_12_AFIO_REMAP ((void)0) diff --git a/sw/airborne/led.h b/sw/airborne/led.h index ebbd77e50ab..6e6976c7693 100644 --- a/sw/airborne/led.h +++ b/sw/airborne/led.h @@ -76,6 +76,11 @@ static inline void led_init ( void ) { LED_OFF(8); #endif /* LED_8 */ +#ifdef LED_BODY_BANK + LED_INIT(BODY); + LED_OFF(BODY); +#endif /* LED_BODY_BANK */ + #if USE_LED_12 LED_INIT(12); LED_OFF(12);