snickerdoodle Platform Controller
firmware for STM32F0 platform controller
sd_adc.h
Go to the documentation of this file.
1 
46 #ifndef __SD_ADC_H
47 #define __SD_ADC_H
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
71 extern struct sd_adc_dev adc_dev;
72 
86 enum sd_adc_err {
87  SD_ADC_SUCCESS,
88  SD_ADC_ERROR
89 };
90 
91 
95 struct sd_adc_dev {
96  ADC_HandleTypeDef *adc;
97  uint16_t error;
98  struct sd_adc_chan *chan;
99  uint16_t nchan;
100 };
101 
102 
106 struct sd_adc_chan {
107  uint16_t chan;
108  uint16_t high_thresh;
109  uint16_t low_thresh;
110  void (*out_win_cb)(struct sd_adc_chan *chan); /* In threshold window callback */
111  void (*in_win_cb)(struct sd_adc_chan *chan); /* Out of threshold window callback */
112 };
113 
114 
123 void sd_adc_init (void);
124 void sd_adc_monitor (struct sd_adc_dev *dev);
125 void sd_adc_monitor_enable (void);
126 void sd_adc_watchdog_enable (void);
127 void sd_adc_print (void);
128 void sd_adc_irqhandler (struct sd_adc_dev *dev);
137 #ifdef __cplusplus
138 }
139 #endif
140 #else
141 #error "Multiple inclusion of sd_adc.h"
142 #endif /* __SD_ADC_H */
143 
144 /*
145  * END OF FILE [sd_adc.h]
146  */
void sd_adc_init(void)
Definition: sd_adc.c:129
ADC_HandleTypeDef * adc
Definition: sd_adc.h:94
uint16_t high_thresh
Definition: sd_adc.h:106
Definition: sd_adc.h:93
void sd_adc_print(void)
Print the ADC Values.
Definition: sd_adc.c:368
void sd_adc_irqhandler(struct sd_adc_dev *dev)
ADC Interrupt Handler Handle interrupt events on the ADC peripheral.
Definition: sd_adc.c:289
uint16_t nchan
Definition: sd_adc.h:97
uint16_t low_thresh
Definition: sd_adc.h:107
uint16_t error
Definition: sd_adc.h:95
void sd_adc_monitor(struct sd_adc_dev *dev)
Check ADC Limits.
Definition: sd_adc.c:387
struct sd_adc_chan * chan
Definition: sd_adc.h:96
Definition: sd_adc.h:104
uint16_t chan
Definition: sd_adc.h:105
void sd_adc_watchdog_enable(void)
ADC Watchdog Enable.
Definition: sd_adc.c:268