#include <mega16.h>
#include <delay.h>
#include <stdio.h>
#include <stdlib.h>

#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm


#include <lcd.h>

#define ADC_VREF_TYPE 0x00
#define quantity_of_chanel 2

char lcd_buffer[10];
float f;
unsigned int adcl;
unsigned int adch;
unsigned char number_of_chanel;

float raschet_naprygeniay(unsigned int adcl){  
 //float q;
 //q=(adcl*5)/1024; 
 return (adcl*5)/1024;
}

interrupt [ADC_INT] void adc_conv (void) {


if(number_of_chanel<=quantity_of_chanel)
{
  adcl = ADCL;
  adch = ADCH;
  adch = adch<<8;
  adcl|= adch;

  //f = adcl;
  //f = (adcl*5)/1024;
  ftoa(raschet_naprygeniay(adcl), 2, lcd_buffer);

 

//  sprintf(lcd_buffer, 10, "%f", f);
//lcd_clear();

  lcd_gotoxy(2,0);
  lcd_puts(lcd_buffer);
  //nomer_chanal++;
  if(number_of_chanel>quantity_of_chanel)
  {
    number_of_chanel=0;
  }
  ADMUX=number_of_chanel;

  //delay_ms(20);

  ADCSRA|=0x40;
}


}


void main(void) {


PORTB=0x00;
number_of_chanel = 0;

ADCSRA=0x8E;
lcd_init(16);  
lcd_putsf("U=");
lcd_gotoxy(6,0);
lcd_putsf("V");
SREG |= (1 << 7);
ADMUX=0;
ADCSRA|=0x40;
while (1){
    }
}
