Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1537 → Rev 1538

/branches/FC_076g_Code Redesign killagreg/analog.h
0,0 → 1,47
#ifndef _ANALOG_H
#define _ANALOG_H
 
#include <inttypes.h>
 
extern volatile uint16_t MeasurementCounter;
extern volatile int16_t UBat;
extern volatile int16_t AdValueGyroNick, AdValueGyroRoll, AdValueGyroYaw;
#define HIRES_GYRO_AMPLIFY 8 // the offset corrected HiResGyro values are a factor of 8 scaled to the AdValues
extern volatile int16_t HiResGyroNick, HiResGyroRoll;
extern volatile int16_t FilterHiResGyroNick, FilterHiResGyroRoll;
extern volatile int16_t AdValueAccRoll, AdValueAccNick, AdValueAccTop, AdValueAccZ;
#define AIR_PRESSURE_SCALE 18 // 1 ADC counts corresponds approx. to 18 cm
#define SM_FILTER 16
extern volatile int32_t SumHeight; // filter for variometer
extern volatile int32_t AirPressure; // gets less with growing height
extern volatile int32_t StartAirPressure; // air pressure at ground
extern volatile int32_t ReadingHeight; // height according to air pressure (altimeter in steps of 1cm)
extern volatile int16_t ReadingVario;
extern volatile int16_t AdAirPressure; // ADC value of air pressure measurement
#define EXPANDBARO_OPA_OFFSET_STEP 10
#define EXPANDBARO_ADC_SHIFT (-523) // adc shift per EXPANDBARO_OPA_OFFSET_STEP
extern uint8_t PressureSensorOffset;
extern int8_t ExpandBaro;
 
extern volatile uint8_t ADReady;
 
extern uint8_t DacOffsetGyroNick, DacOffsetGyroRoll, DacOffsetGyroYaw;
 
#define AIR_PRESSURE_SEARCH 800
#define AIR_PRESSURE_SEARCH_MIN 750
#define AIR_PRESSURE_SEARCH_MAX 950
 
void SearchAirPressureOffset(void);
void SearchDacGyroOffset(void);
void ADC_Init(void);
 
 
// clear ADC enable & ADC Start Conversion & ADC Interrupt Enable bit
#define ADC_Disable() (ADCSRA &= ~((1<<ADEN)|(1<<ADSC)|(1<<ADIE)))
// set ADC enable & ADC Start Conversion & ADC Interrupt Enable bit
#define ADC_Enable() (ADCSRA |= (1<<ADEN)|(1<<ADSC)|(1<<ADIE))
 
 
#endif //_ANALOG_H