// read voltage using ADC0 on port F pin 0
#include<LCD4_128.h>
#include<FPU_128.h>
void adc_init(void)
{
ADCSRA.ADEN = 1 ; // enables ADC by
ADCSRA.ADFR = 0; // single sample conversion
ADCSRA.ADPS0 = 0;
ADCSRA.ADPS1 = 1; // selects div by 64 clock prescaler
ADCSRA.ADPS2 = 1;
ADMUX.REFS0 = 1; // selects AVCC as Vref
ADMUX.REFS1 = 0;
ADMUX.ADLAR = 0; // selects right adjust of ADC result
ADMUX.MUX0 = 0;
ADMUX.MUX1 = 0; // selects single-ended conversion on PF0
ADMUX.MUX2 = 0;
ADMUX.MUX3 = 0;
ADMUX.MUX4 = 0;
}
void main(void)
{
int adc_result;
int ascl;
int asch;
float res;
adc_init(); // Call the init function
DDRF = 0x00; // (PORTF) as input so we can receive analog signals
PORTF = 0x00; //pull-up resistors are turned off
while(1)
{
ADCSRA.ADSC = 1; // start a conversion
while(ADCSRA.ADSC); // wait for conversion to complete
adc_result = 0;
ascl = 0;
asch = 0;
ascl = ADCL;
asch = ADCH;
adc_result = asch<<8;
adc_result = adc_result | ascl ;
res = 5.0 * adc_result / 1024.0;
LCD.PRINT(res);
Sleep(500 mil);
LCD.CLEAR();
}
}