#ifndef DRILL_DUAL_ADC_H
#define DRILL_DUAL_ADC_H
#include <stdbool.h>
#include <stdint.h>
typedef enum { DU_IDLE,DU_REG,DU_CAL,DU_GAP,DU_ENABLE,DU_READY,DU_WAIT,DU_STOP,DU_DONE,DU_FAILED } du_state;
extern volatile du_state drill_dual_state;
extern volatile uint32_t drill_dual_error;
typedef struct {uint16_t ia_raw,ib_raw,timer_count;uint32_t armed_us,observed_us,sequence;bool calibration_verified;} du_sample;
/* Mutually exclusive with A75 sequential ADC. External supply qualification
 * required. No PWM output, DRV_RUN, charging, current limit or FOC permission. */
bool drill_dual_bench_begin(uint32_t now,bool analog_supply_verified);
void drill_dual_poll(uint32_t now);
bool drill_dual_capture_start(uint32_t now);
bool drill_dual_take(du_sample *,uint32_t now);
bool drill_dual_busy(void);
#endif
