snickerdoodle Platform Controller
firmware for STM32F0 platform controller
sd_led.h
Go to the documentation of this file.
1 
46 #ifndef __SD_LED_H
47 #define __SD_LED_H
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
52 
63 extern struct sd_led fault_led;
64 extern struct sd_led usb_led;
65 extern struct sd_led bluetooth_led;
66 extern struct sd_led app_led;
67 extern struct sd_led wireless_led;
82 enum sd_led_err {
84  SD_LED_IDLE,
88 };
89 
90 
95 enum sd_led_state {
96  SD_LED_NOT_READY,
97  SD_LED_INITIALIZED,
98  SD_LED_RUNNING,
99 };
105 struct sd_led {
106  TIM_HandleTypeDef *tim;
107  TIM_OC_InitTypeDef *cfg;
108  uint32_t chan;
109  TIM_HandleTypeDef *up_tim;
110  uint32_t *pattern;
111  uint32_t *pattern_next;
112  uint32_t pattern_len;
113  uint32_t pattern_idx;
114  uint8_t repeat;
115  enum sd_led_state state;
116 };
125 enum sd_led_err sd_led_init (struct sd_led *led,
126  TIM_HandleTypeDef *tim,
127  uint32_t chan,
128  uint32_t *pattern,
129  uint32_t len,
130  TIM_HandleTypeDef *up_tim);
131 enum sd_led_err sd_led_set_pattern (struct sd_led *led,
132  uint32_t *pattern,
133  uint32_t len,
134  uint8_t rep);
135 enum sd_led_err sd_led_enable (struct sd_led *led,
136  uint8_t en);
137 enum sd_led_err sd_led_reset (struct sd_led *led);
138 enum sd_led_err sd_led_queuehandler (struct sd_led *led);
147 #ifdef __cplusplus
148 }
149 #endif
150 #else
151 #error "Multiple inclusion of sd_led.h"
152 #endif /* __SD_LED_H */
153 
154 /*
155  * END OF FILE [sd_led.h]
156  */
sd_led_err
LED error status enumeration.
Definition: sd_led.h:76
enum sd_led_err sd_led_init(struct sd_led *led, TIM_HandleTypeDef *tim, uint32_t chan, uint32_t *pattern, uint32_t len, TIM_HandleTypeDef *up_tim)
LED initialization Initialize an LED configuration on a timer peripheral with a pattern.
Definition: sd_led.c:92
struct sd_led wireless_led
Definition: sd_led.c:68
Definition: sd_led.h:78
sd_led_state
LED state.
Definition: sd_led.h:89
uint32_t pattern_len
Definition: sd_led.h:106
enum sd_led_err sd_led_queuehandler(struct sd_led *led)
LED queue handler Execute the LED pattern state machine.
Definition: sd_led.c:213
enum sd_led_err sd_led_reset(struct sd_led *led)
LED reset Reset the LED configuration and clear the pattern.
Definition: sd_led.c:174
LED pattern configuration structure.
Definition: sd_led.h:99
uint32_t * pattern
Definition: sd_led.h:104
uint8_t repeat
Definition: sd_led.h:108
struct sd_led usb_led
Definition: sd_led.c:65
enum sd_led_state state
Definition: sd_led.h:109
uint32_t pattern_idx
Definition: sd_led.h:107
struct sd_led fault_led
Definition: sd_led.c:64
uint32_t chan
Definition: sd_led.h:102
enum sd_led_err sd_led_set_pattern(struct sd_led *led, uint32_t *pattern, uint32_t len, uint8_t repeat)
LED set pattern Set pattern for LED output.
Definition: sd_led.c:265
TIM_HandleTypeDef * tim
Definition: sd_led.h:100
Definition: sd_led.h:81
Definition: sd_led.h:77
struct sd_led app_led
Definition: sd_led.c:67
Definition: sd_led.h:79
struct sd_led bluetooth_led
Definition: sd_led.c:66
TIM_HandleTypeDef * up_tim
Definition: sd_led.h:103
Definition: sd_led.h:80
TIM_OC_InitTypeDef * cfg
Definition: sd_led.h:101
uint32_t * pattern_next
Definition: sd_led.h:105
enum sd_led_err sd_led_enable(struct sd_led *led, uint8_t en)
LED Enable.
Definition: sd_led.c:137