154,6 → 154,7 |
volatile uint16_t accNoisePeak[3]; |
|
volatile uint8_t adState; |
volatile uint8_t adChannel; |
|
// ADC channels |
#define AD_GYRO_YAW 0 |
210,7 → 211,7 |
// external reference, adjust data to the right |
ADMUX &= ~((1<<REFS1)|(1<<REFS0)|(1<<ADLAR)); |
// set muxer to ADC adc_channel 0 (0 to 7 is a valid choice) |
ADMUX = (ADMUX & 0xE0) | AD_GYRO_PITCH; |
ADMUX = (ADMUX & 0xE0); |
//Set ADC Control and Status Register A |
//Auto Trigger Enable, Prescaler Select Bits to Division Factor 128, i.e. ADC clock = SYSCKL/128 = 156.25 kHz |
ADCSRA = (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); |
252,7 → 253,8 |
sensorInputs[i] = 0; |
} |
adState = 0; |
ADMUX = (ADMUX & 0xE0) | AD_GYRO_PITCH; |
adChannel = AD_GYRO_PITCH; |
ADMUX = (ADMUX & 0xE0) | adChannel; |
startADC(); |
} |
|
262,7 → 264,6 |
* processed further conversions are stopped. |
*****************************************************/ |
ISR(ADC_vect) { |
static uint8_t adChannel = AD_GYRO_PITCH; |
sensorInputs[adChannel] += ADC; |
// set up for next state. |
adState++; |