33 lines
1.1 KiB
C
33 lines
1.1 KiB
C
#include "bsp_led.h"
|
|
#include "main.h"
|
|
|
|
static const GPIO_TypeDef *bsp_led_gpio_ports[BSP_LED_COUNT] = {
|
|
LED1_GPIO_Port, LED2_GPIO_Port, LED3_GPIO_Port, LED4_GPIO_Port,
|
|
LED5_GPIO_Port, LED6_GPIO_Port, LED7_GPIO_Port, LED8_GPIO_Port
|
|
};
|
|
|
|
static const uint16_t bsp_led_pins[BSP_LED_COUNT] = {
|
|
LED1_Pin, LED2_Pin, LED3_Pin, LED4_Pin,
|
|
LED5_Pin, LED6_Pin, LED7_Pin, LED8_Pin,
|
|
};
|
|
|
|
void bsp_led_set_output(const uint8_t *command)
|
|
{
|
|
for (uint8_t i = 0; i < BSP_LED_COUNT; i ++) {
|
|
if (command[i] == bsp_led_command_on) {
|
|
HAL_GPIO_WritePin((GPIO_TypeDef *)bsp_led_gpio_ports[i], bsp_led_pins[i], GPIO_PIN_SET);
|
|
} else if (command[i] == bsp_led_command_off) {
|
|
HAL_GPIO_WritePin((GPIO_TypeDef *)bsp_led_gpio_ports[i], bsp_led_pins[i], GPIO_PIN_RESET);
|
|
} else if (command[i] == bsp_led_command_toggle) {
|
|
HAL_GPIO_TogglePin((GPIO_TypeDef *)bsp_led_gpio_ports[i], bsp_led_pins[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
void bsp_led_get_status(uint8_t *status)
|
|
{
|
|
for (uint8_t i = 0; i < BSP_LED_COUNT; i ++) {
|
|
status[i] = bsp_led_gpio_ports[i]->ODR & bsp_led_pins[i] ? 1 : 0;
|
|
}
|
|
}
|