From 810621a124347dbeb5c15f22d100f18fef7447be Mon Sep 17 00:00:00 2001 From: sjlongland Date: Thu, 24 Sep 2015 08:12:13 +0000 Subject: [PATCH] sm1000_leds_switches: Add support for toggling LEDs git-svn-id: https://svn.code.sf.net/p/freetel/code@2366 01035d8c-6547-0410-b346-abe4f91aad63 --- codec2-dev/stm32/inc/sm1000_leds_switches.h | 4 ++++ codec2-dev/stm32/src/sm1000_leds_switches.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/codec2-dev/stm32/inc/sm1000_leds_switches.h b/codec2-dev/stm32/inc/sm1000_leds_switches.h index 33de73fe..0949efb8 100644 --- a/codec2-dev/stm32/inc/sm1000_leds_switches.h +++ b/codec2-dev/stm32/inc/sm1000_leds_switches.h @@ -32,6 +32,10 @@ void sm1000_leds_switches_init(void); +#define LED_ON 1 /*!< Turn LED on */ +#define LED_OFF 0 /*!< Turn LED off */ +#define LED_INV -1 /*!< Invert LED state */ + void led_pwr(int state); void led_ptt(int state); void led_rt(int state); diff --git a/codec2-dev/stm32/src/sm1000_leds_switches.c b/codec2-dev/stm32/src/sm1000_leds_switches.c index 129d54ef..e8f6ffc9 100644 --- a/codec2-dev/stm32/src/sm1000_leds_switches.c +++ b/codec2-dev/stm32/src/sm1000_leds_switches.c @@ -71,29 +71,37 @@ void sm1000_leds_switches_init(void) { } void led_pwr(int state) { - if (state) + if (state > 0) GPIOD->ODR |= (1 << 12); + else if (state < 0) + GPIOD->ODR ^= (1 << 12); else GPIOD->ODR &= ~(1 << 12); } void led_ptt(int state) { - if (state) + if (state > 0) + GPIOD->ODR |= (1 << 13); + else if (state < 0) GPIOD->ODR |= (1 << 13); else GPIOD->ODR &= ~(1 << 13); } void led_rt(int state) { - if (state) + if (state > 0) GPIOD->ODR |= (1 << 14); + else if (state < 0) + GPIOD->ODR ^= (1 << 14); else GPIOD->ODR &= ~(1 << 14); } void led_err(int state) { - if (state) + if (state > 0) GPIOD->ODR |= (1 << 15); + else if (state < 0) + GPIOD->ODR ^= (1 << 15); else GPIOD->ODR &= ~(1 << 15); } -- 2.25.1