#include <mega16.h>
#include <alcd.h>
#include <stdio.h>
#include <delay.h>
#define ADC_VREF_TYPE 0xC0

 long int t;
 char buffer[32];
 
 unsigned int read_adc(unsigned char adc_input){
  long int t;
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    delay_us(10);
    ADCSRA|=0x40;
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    t=((ADCW*2.56)/1023)*100;
    return t;
 }
 

 void main(void){
    SFIOR=0x00;
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x86;
    lcd_init(16);
    
    while (1){ 
        t=read_adc(0);
        lcd_clear();
        sprintf(buffer,"T=%i\xdfC\n*Ali Khalili*",t);
        lcd_puts(buffer);
        delay_ms(100); 
    }
 }