#include <avr/io.h>
#include <util/delay.h>
#define BAUD 9600
int main() {
ADMUX |= (1 << REFS0) | (1 << MUX0); //ADC1 E 5V;
ADCSRA |= (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1);
uint16_t baud_setting = (F_CPU / 8 / BAUD - 1) / 2;
UCSR0B |= (1 << TXEN0);
UBRR0H = baud_setting >> 8;
UBRR0L = baud_setting;
while (1) {
ADCSRA |= (1 << ADSC); //START
while (ADCSRA & (1 << ADSC));
uint16_t adc = ADCL | (ADCH << 8);
unsigned char str[15];
sprintf(str, "ADC: %d\n", adc);
for(int i = 0; i<sizeof(str); i++)
{
USART_Transmit(str[i]);
}
_delay_ms(1000);
}
return 0;
}
void USART_Transmit(unsigned char data) {
while (!(UCSR0A & (1 << UDRE0)))
;
UDR0 = data;
}