diff options
author | fishsoupisgood <github@madingley.org> | 2020-09-09 11:53:37 +0100 |
---|---|---|
committer | fishsoupisgood <github@madingley.org> | 2020-09-09 11:53:37 +0100 |
commit | 9d87c925a9eaa4fc256be3173c14a20d1469472d (patch) | |
tree | 50d63f87a47a0eac3f5b8058850184bcd4e6ee95 /boiler-monster/stm32/app/led.c | |
parent | dafd8cf2fdcdd637cc06f760d318cf8391b1a294 (diff) | |
download | heating-9d87c925a9eaa4fc256be3173c14a20d1469472d.tar.gz heating-9d87c925a9eaa4fc256be3173c14a20d1469472d.tar.bz2 heating-9d87c925a9eaa4fc256be3173c14a20d1469472d.zip |
everything, mostly, working
Diffstat (limited to 'boiler-monster/stm32/app/led.c')
-rw-r--r-- | boiler-monster/stm32/app/led.c | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/boiler-monster/stm32/app/led.c b/boiler-monster/stm32/app/led.c new file mode 100644 index 0000000..bdfd084 --- /dev/null +++ b/boiler-monster/stm32/app/led.c @@ -0,0 +1,101 @@ +#include "project.h" + +#define LED_BOARD GPIO13 +#define LED_BOARD_PORT GPIOC + +#define LED_YELLOW GPIO11 +#define LED_YELLOW_PORT GPIOA + +#define LED_GREEN1 GPIO12 +#define LED_GREEN1_PORT GPIOA + +#define LED_GREEN2 GPIO15 +#define LED_GREEN2_PORT GPIOA + +#define LED_RED GPIO3 +#define LED_RED_PORT GPIOB + +static unsigned led, yellow; + + +void led_red_set (int i) +{ + if (i) + CLEAR (LED_RED); + else + SET (LED_RED); +} + +void led_green1_set (int i) +{ + if (i) + CLEAR (LED_GREEN1); + else + SET (LED_GREEN1); +} + +void led_green2_set (int i) +{ + if (i) + CLEAR (LED_GREEN2); + else + SET (LED_GREEN2); +} + +static void _led_yellow_set (int i) +{ + if (i) + CLEAR (LED_YELLOW); + else + SET (LED_YELLOW); +} + +static void led_board_set (int i) +{ + if (i) + CLEAR (LED_BOARD); + else + SET (LED_BOARD); +} + +void led_blink (void) +{ + led = MS_TO_TICKS (25); +} + + +void led_yellow_set (int i) +{ + yellow = !!i; +} + + +void +led_tick (void) +{ + if (led) { + led--; + + led_board_set (1); + _led_yellow_set (!yellow); + } else { + + led_board_set (0); + _led_yellow_set (yellow); + } +} + + +void +led_init (void) +{ + MAP_OUTPUT_PP (LED_BOARD); + MAP_OUTPUT_PP (LED_RED); + MAP_OUTPUT_PP (LED_GREEN1); + MAP_OUTPUT_PP (LED_GREEN2); + MAP_OUTPUT_PP (LED_YELLOW); + + CLEAR (LED_BOARD); +} + + |