I've been trying to sample an analog signal with the atmega328p in c. Previously i've got this working with something similar, but somehow this time i can't get it to work. I've tried to make a minimal example that gets me the same result:
#include <avr/io.h>
uint8_t data[2];
ADMUX = (1 << REFS0);
ADCSRA = (1 << ADEN);
ADCSRA |= (1 << ADSC);
while (ADCSRA & (1 << ADSC));
data[1] = ADCL;
data[0] = ADCH;
This code results in the array data = {0b00000011, 0b11111111}
, no matter what. As the atmega328p has a 10-bit adc, this is the maximum value, so i'm probably doing something wrong but i just can't spot the mistake.
Thanks in advance for any answers
Regards, Harm