blob: 92edaf15863b325d1f3d4526401eadb833a659ee [file] [log] [blame]
#include "cape/led.h"
#include <STM32F2XX.h>
#include "cape/util.h"
#define LED_SPEED 0
// DB = PC3
// Z = PB1
// HB = PB4
// ERR = PB11
static void do_led_set(GPIO_TypeDef *port, int number, int on) {
// The LEDs are hooked up between 3.3V and the GPIO pin, so these are
// backwards.
if (on) {
gpio_off(port, number);
} else {
gpio_on(port, number);
}
}
void led_set(enum LED led, int on) {
switch (led) {
case LED_ERR:
do_led_set(GPIOB, 11, on);
break;
case LED_HB:
do_led_set(GPIOB, 4, on);
break;
case LED_Z:
do_led_set(GPIOB, 1, on);
break;
case LED_DB:
do_led_set(GPIOC, 3, on);
break;
}
}
void led_init(void) {
gpio_setup_out(GPIOB, 11, LED_SPEED);
led_set(LED_ERR, 0);
gpio_setup_out(GPIOB, 4, LED_SPEED);
led_set(LED_HB, 0);
gpio_setup_out(GPIOB, 1, LED_SPEED);
led_set(LED_Z, 0);
gpio_setup_out(GPIOC, 3, LED_SPEED);
led_set(LED_DB, 0);
}