Skip to content

Commit

Permalink
[led][driver] Added provisions for body LED.
Browse files Browse the repository at this point in the history
  • Loading branch information
esden committed Oct 30, 2012
1 parent 79baece commit 27119bb
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 2 deletions.
8 changes: 6 additions & 2 deletions sw/airborne/arch/stm32/led_hw.h
Expand Up @@ -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 */
Expand All @@ -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() {}
Expand Down
17 changes: 17 additions & 0 deletions sw/airborne/boards/lisa_m_1.0.h
Expand Up @@ -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

This comment has been minimized.

Copy link
@flixr

flixr Oct 31, 2012

Member

I guess that should be
LED_1_GPIO_ON GPIO_BRR
instead of
LED_1_GPIO_ON GPIO_BSRR
everywhere for lisa_m_1, seems correct in the lisa_m_2 file

This comment has been minimized.

Copy link
@esden

esden Oct 31, 2012

Author Member

Correct. Sorry fixed in a47c256

#define LED_1_GPIO_OFF GPIO_BSRR
#define LED_1_AFIO_REMAP AFIO_MAPR |= AFIO_MAPR_SWJ_CFG_FULL_SWJ_NO_JNTRST

/* blue */
Expand All @@ -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 */
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
26 changes: 26 additions & 0 deletions sw/airborne/boards/lisa_m_2.0.h
Expand Up @@ -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 */
Expand All @@ -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) */
Expand All @@ -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) */
Expand All @@ -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 */
Expand All @@ -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)

/*
Expand All @@ -63,29 +73,45 @@
#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)


/*
* 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)


Expand Down
5 changes: 5 additions & 0 deletions sw/airborne/led.h
Expand Up @@ -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);
Expand Down

0 comments on commit 27119bb

Please sign in to comment.