2008-03-10 21:37:56 +01:00
|
|
|
#ifndef AT91_ADC_H_
|
|
|
|
#define AT91_ADC_H_
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
2008-06-23 15:33:07 +02:00
|
|
|
#define ADC_GYRO_NICK 0
|
|
|
|
#define ADC_GYRO_ROLL 1
|
|
|
|
#define ADC_GYRO_GIER 2
|
|
|
|
|
|
|
|
#define ADC_ACC_NICK 3
|
|
|
|
#define ADC_ACC_ROLL 4
|
|
|
|
#define ADC_ACC_GIER 5
|
|
|
|
|
2008-03-10 21:37:56 +01:00
|
|
|
#define ADC_VOLTAGE 6
|
|
|
|
|
2008-06-23 15:33:07 +02:00
|
|
|
// TODO: not all flags are public
|
|
|
|
#define ADC_COMPLETE 0x0001
|
|
|
|
#define ADC_CAL_GYRO 0x0100
|
|
|
|
#define ADC_CAL_GYRO_COMPLETE 0x0200
|
|
|
|
#define ADC_CAL_ACC 0x1000
|
|
|
|
#define ADC_CAL_ACC_COMPLETE 0x2000
|
|
|
|
#define ADC_CAL_ACC_LOAD 0x4000
|
2008-03-10 21:37:56 +01:00
|
|
|
|
|
|
|
void adc_trigger(void);
|
2008-06-23 15:33:07 +02:00
|
|
|
void adc_get_results(int16_t *adc_result);
|
2008-03-10 21:37:56 +01:00
|
|
|
|
|
|
|
void adc_calibrate(uint32_t mode);
|
2008-06-23 15:33:07 +02:00
|
|
|
void adc_drift_adjust(int16_t nick, int16_t roll, int16_t yaw);
|
|
|
|
|
2008-03-10 21:37:56 +01:00
|
|
|
void at91_adc_init(void);
|
|
|
|
|
2008-06-23 15:33:07 +02:00
|
|
|
#endif /* AT91_ADC_H_ */
|