#include"lcd.h"
#include"ADC.h"
#define max_digit 5 //10 bit adc is used thus max value has is 4+1 digits
void cnvrt_int_to_arr(int,int,char[]);
int find_len(int);
void setup() {
volatile int digit; //number of digits present in reading is stored
volatile char arry[max_digit]; //array to store readings
volatile int value; //POT reading is stored here
init_adc(); //initializing ADC
init_port(); //port where LCD is connected is initilized
init_lcd(); //LCD is initilized
while(1)
{
value=ad_convert(); //ADC function is called and the reading is stored in variable value
if(value==0) //if reading is zero direct o/p as '0'
{
write_data('0');
delay(500);
clear_display();
}
else
{
digit=find_len(value); //number of digit in value is found
cnvrt_int_to_arr(value,digit,arry); //int value is stored in array as char
write_string(arry,digit); //array elements is sent to display
delay(100);
clear_display(); //display is cleared
}
}
}
//finding length of value*********************************
int find_len(int num)
{
volatile int digit=0;
while(num!=0) //finding number of digits
{
num=num/10;
digit++;
}
return digit;
}
//converting integer to arrar***************************
void cnvrt_int_to_arr(int number,int digit,char arry[])
{
volatile char num;
for(int i=digit-1;i>=0;i--)
{
num=number%10;
arry[i]=num+'0';
number=number/10;
}
arry[digit]='\0'; //last digit is null terminated
return arry;
}
void loop() {
}