54 lines
1.5 KiB
C
Executable File
54 lines
1.5 KiB
C
Executable File
#ifndef LED_H_
|
|
#define LED_H_
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
/**
|
|
* @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_ */
|