blob: 1968f96032547ff72890d319c96edd501db94206 [file] [log] [blame]
Brian Silverman18b01642013-12-13 21:12:25 -08001#include "cape/led.h"
2
3#include <STM32F2XX.h>
4
5#include "cape/util.h"
6
7#define LED_SPEED 0
8
9// DB = PC3
10// Z = PB1
11// HB = PB4
12// ERR = PB11
13
14static void do_led_set(GPIO_TypeDef *port, int number, int on) {
15 if (on) {
16 port->BSRRL = 1 << number;
17 } else {
18 port->BSRRH = 1 << number;
19 }
20}
21
22void led_set(enum LED led, int on) {
23 switch (led) {
24 case LED_ERR:
25 do_led_set(GPIOB, 11, on);
26 break;
27 case LED_HB:
28 do_led_set(GPIOB, 4, on);
29 break;
30 case LED_Z:
31 do_led_set(GPIOB, 1, on);
32 break;
33 case LED_DB:
34 do_led_set(GPIOC, 3, on);
35 break;
36 }
37}
38
39void led_init(void) {
40 gpio_setup_out(GPIOB, 11, LED_SPEED);
41 led_set(LED_ERR, 0);
42 gpio_setup_out(GPIOB, 4, LED_SPEED);
43 led_set(LED_HB, 0);
44 gpio_setup_out(GPIOB, 1, LED_SPEED);
45 led_set(LED_Z, 0);
46 gpio_setup_out(GPIOC, 3, LED_SPEED);
47 led_set(LED_DB, 0);
48}