#ifndef __ADC_H__ #define __ADC_H__ #include struct adc_state { uint8_t txbuf[12]; uint8_t rxbuf[12]; uint32_t dma_ccr3; uint32_t sampling_interval_us; uint32_t sample_count; int32_t samples[16][2]; size_t sample_wr_idx; size_t sample_rd_idx; bool has_adc; bool overload[2]; ErrorCode error; uint64_t last_error; }; extern struct adc_state st_adc; void adc_init(void); void adc_dma_interrupt(DMA_Channel_TypeDef *channel, uint32_t flags); #endif /* __ADC_H__ */