#ifndef DRILL_ADC_CAPTURE_H
#define DRILL_ADC_CAPTURE_H
#include <stdbool.h>
#include <stdint.h>
typedef enum { DA_IDLE,DA_REGULATOR,DA_CALIBRATION,DA_CAL_GAP,DA_ENABLE,DA_READY,DA_CONVERT,DA_DONE,DA_FAILED } da_state;
typedef enum { DA_NONE,DA_CONFIG,DA_TIME,DA_FLAGS,DA_RANGE } da_error;
/* Off-state sequential diagnostic only. Not simultaneous FOC samples.
 * Read timestamps bound software observation, not the ADC aperture. */
typedef struct {uint16_t raw[4];uint32_t observed_us[4],completed_us,sequence;bool physical_calibration_verified;} da_sample;
extern volatile da_state drill_adc_state;
extern volatile da_error drill_adc_error;
bool drill_adc_bench_begin(uint32_t now,bool analog_supply_verified);
void drill_adc_poll(uint32_t now);
bool drill_adc_capture_start(uint32_t now);
bool drill_adc_take(da_sample *out,uint32_t now);
bool drill_adc_busy(void);
void drill_adc_abort(void);
/* A82 feedback board only: VREF pin37 tied to AVDD via 0R, lower
 * divider leg DNP and 100nF bypass. A34 ILIM divider is incompatible.
 * External qualification must include VREF>=2.8V, VDDA, reference/swing
 * and bridge off. No hardware 2A CBC or run permission exists here. */
#endif
