/* * led.h * * Created on: Jan 4, 2023 * Author: Think */ #ifndef INC_MISCDEV_H_ #define INC_MISCDEV_H_ #include "stm32l431xx.h" typedef enum { OFF, ON, } status_t; /* *+----------------------+ *| GPIO Led API | *+----------------------+ */ typedef enum { LedRed, LedGreen, LedBlue, LedMax, } lednum_t; typedef struct gpio_s { const char *name; GPIO_TypeDef *group; uint16_t pin; } gpio_t; extern gpio_t leds[LedMax] ; extern void turn_led(lednum_t which, status_t status); extern void blink_led(lednum_t which, uint32_t interval); /* *+----------------------+ *| GPIO Relay API | *+----------------------+ */ extern void turn_relay(status_t status); /* *+----------------------------+ *| ADC noisy & lux sensor API | *+----------------------------+ */ enum { ADCCHN_NOISY, ADCCHN_LUX, ADCCHN_MAX, }; extern int adc_sample_lux_noisy(uint32_t *lux, uint32_t *noisy); /* *+----------------------------+ * Timer Buzzer/delay API | *+----------------------------+ */ extern void beep_start(uint16_t times, uint16_t interval); /* Max to 60000 us, DS18B20 driver depends on it */ extern void delay_us(uint16_t us); #endif /* INC_LED_H_ */