I have a doubt, can I read two digit number using UART1_Read() function, number can be any two digit number.
If yes then how ?
Code: Select all
UART1_Read(digit);
Reagrds,
kumar
Code: Select all
UART1_Read(digit);
Code: Select all
unsigned int number;
number = UART1_Read(); //input = 65
UART1_Write(number); //output = 6
Code: Select all
char c:
int value;
int i=0;
.. somme init here....
do
{
i=0;
if ( (UART1_Data_Ready())&& (i==0))
{
c=UART1_Read() ;
UART1_Write (c); // echo '6' en ascii
value=( c-48)*10; // value=6*10=60
i++;
}
if ((UART1_Data_Ready()) && (i==1))
{
c=UART1_Read() ;
UART1_Write (c); // echo '5' ascii
value= value +( c-48); // value = 60 + 5 = 65
i++;
}
}
while(i<2);
/*
* The output of the above code shoud be like this :
* 65
* 23
* 78
* 90
* but your code is giving output in one line 65 23 78 90 etc...
*/
Code: Select all
char c:
int value;
int i=0;
.. somme init here....
do
{
i=0;
if ( (UART1_Data_Ready())&& (i==0))
{
c=UART1_Read() ;
UART1_Write (c); // echo '6' en ascii
value=( c-48)*10; // value=6*10=60
i++;
}
if ((UART1_Data_Ready()) && (i==1))
{
c=UART1_Read() ;
UART1_Write (c); // echo '5' ascii
value= value +( c-48); // value = 60 + 5 = 65
i++;
}
// add here LF +CR => to change to the begining of next line
UART1_Write (10);
UART1_Write (13);
}
while(i<2);