diff options
Diffstat (limited to 'app/led.c')
-rw-r--r-- | app/led.c | 51 |
1 files changed, 32 insertions, 19 deletions
@@ -1,35 +1,48 @@ #include "project.h" -static int led=0; +static int led_8 = 0; +static int led_9 = 0; -void led_init(void ) +void +led_init (void) { -gpio_set_mode (GPIOB, GPIO_MODE_OUTPUT_2_MHZ, + gpio_set_mode (GPIOB, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8); gpio_set_mode (GPIOB, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO9); -} - -void led_clear(void) -{ - gpio_set(GPIOB,GPIO8); - gpio_set(GPIOB,GPIO9); + gpio_set (GPIOB, GPIO8); + gpio_set (GPIOB, GPIO9); } -void led_set(uint32_t v) + +void +led_set (uint32_t v) { - gpio_clear(GPIOB,v); - led=50; + gpio_clear (GPIOB, v); + if (v & GPIO8) + led_8 = 50; + if (v & GPIO9) + led_9 = 50; } -void led_tick(void) +void +led_tick (void) { -if (led) { - led--; - if (!led) led_clear(); -} + if (led_8) + { + led_8--; + if (!led_8) + gpio_set (GPIOB, GPIO8); + } + if (led_9) + { + led_9--; + if (!led_9) + gpio_set (GPIOB, GPIO9); + } + + if (usb_is_suspended) + gpio_clear (GPIOB, GPIO8 | GPIO9); } - - |