#ifndef LED_H_ #define LED_H_ #include #include /** * @brief Identificadores dos LEDs disponíveis no hardware */ typedef enum { LED_ID_STOP, LED_ID_CHARGING, LED_ID_ERROR, LED_ID_MAX } led_id_t; /** * @brief Padrões de comportamento possíveis para os LEDs */ typedef enum { LED_PATTERN_OFF, ///< LED sempre desligado LED_PATTERN_ON, ///< LED sempre ligado LED_PATTERN_BLINK, ///< Pisca com ciclo padrão (500ms on / 500ms off) LED_PATTERN_BLINK_FAST, ///< Pisca rápido (200ms / 200ms) LED_PATTERN_BLINK_SLOW, ///< Pisca lento (300ms / 1700ms) LED_PATTERN_CHARGING_EFFECT ///< Efeito visual para carregamento (2s on / 1s off) } led_pattern_t; /** * @brief Inicializa os LEDs com base na configuração da placa * Deve ser chamada uma única vez na inicialização do sistema. */ void led_init(void); /** * @brief Define diretamente o tempo ligado/desligado de um LED. * Pode ser usado para padrões personalizados. * * @param led_id Identificador do LED (ver enum led_id_t) * @param ontime Tempo ligado em milissegundos * @param offtime Tempo desligado em milissegundos */ void led_set_state(led_id_t led_id, uint16_t ontime, uint16_t offtime); /** * @brief Aplica um dos padrões de piscar definidos ao LED * * @param led_id Identificador do LED (ver enum led_id_t) * @param pattern Padrão desejado (ver enum led_pattern_t) */ void led_apply_pattern(led_id_t led_id, led_pattern_t pattern); #endif /* LED_H_ */