diff --git a/lambda-test/lambda-test.c b/lambda-test/lambda-test.c index d0f7847..d3cb2ff 100644 --- a/lambda-test/lambda-test.c +++ b/lambda-test/lambda-test.c @@ -56,6 +56,9 @@ // AVCC is set as AREF if ((ADMUX & (1 << REFS0)) != (1 << REFS0)) return false; + // digital inputs are disabled + uint8_t adcPorts = (1 << PC0) | (1 << PC2) | (1 << PC5); + if ((DIDR0 & adcPorts) != adcPorts) return false; // ADC clock prescaler/8 uint8_t prescalerBy8 = (1 << ADPS1) | (1 << ADPS0); if ((ADCSRA & prescalerBy8) != prescalerBy8) return false; diff --git a/lambda/adc.c b/lambda/adc.c index 73ababe..ae4a7d3 100644 --- a/lambda/adc.c +++ b/lambda/adc.c @@ -35,6 +35,9 @@ void setupADC(void) { // use AVCC as reference voltage ADMUX |= (1 << REFS0); + // disable digital input on the ADC inputs + // http://www.openmusiclabs.com/learning/digital/atmega-adc/ + DIDR0 |= (1 << PC0) | (1 << PC2) | (1 << PC5); // ADC clock prescaler/8 ADCSRA |= (1 << ADPS1) | (1 << ADPS0); // enable ADC diff --git a/lambda/lambda.c b/lambda/lambda.c index 064d218..d337458 100644 --- a/lambda/lambda.c +++ b/lambda/lambda.c @@ -34,6 +34,7 @@ #include #include +#include #include "USART.h" #include "adc.h" #include "sensors.h" @@ -53,10 +54,6 @@ setupADC(); setupSleepMode(); - // disable digital input on ADC0 - // http://www.openmusiclabs.com/learning/digital/atmega-adc/ - // DIDR0 = 0b00000011; - // main loop while (1) { measurement meas = measure();