Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

problem with displaying float number on LCD. ASAP!!!

Status
Not open for further replies.

hemnath

Advanced Member level 2
Joined
Jun 24, 2012
Messages
691
Helped
61
Reputation
120
Reaction score
57
Trophy points
1,308
Location
Chennai
Activity points
6,516
I have to display .0001 in LCD. But when i print a float number, it is printed as 0.0001. For my case, zero in one's not to be display in LCD. I'm using 8x1 LCD display. Is there any possible solution to print like this??

Thanks in advance :)
 

azarutz

Member level 2
Joined
Mar 4, 2012
Messages
42
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Location
India
Activity points
1,579
send what value you want to show in LCD by sending ASCII value.

eg) ASCII value for dot(.) in hex is 0x2E and for 0(zero) is 0x30 .
if you want to display .210
multiply with 100, a*100 you will get 21.0 then use some arithmetic
Code:
a=0.210*100                   // a=21.0
b=a/10;                          //  b=2
c=a%10;                           // c=1 
lcd_command(0x80);
lcd_data(0x2E)  ;                         // ASCII value for dot
lcd_data(0x30+b);              // ASCII value for two
lcd_data(0x30+c);       // ASCII value for one
lcd_data(0x30);                        //   ASCII value for zero (0)

by doing this you can display without zero in one's.
 

asimlink

Full Member level 1
Joined
Jun 24, 2009
Messages
96
Helped
12
Reputation
24
Reaction score
12
Trophy points
1,288
Location
Islamabad
Activity points
2,287
I assume that you are using printf function to display float value.
I think you should first check to see if the format string given to the printf fucntion can be given an argument that can strip starting '0'.
If there is no possibility through printf format string then you may instead of using printf function should use sprintf function which will give you string of float number in a buffer or array passed to this function as an argument. You may then strip of the first character from this buffer before actually passing it to lcd display function.

regards
 

babar_ali

Full Member level 3
Joined
Dec 22, 2010
Messages
150
Helped
37
Reputation
74
Reaction score
37
Trophy points
1,308
Location
Friedrichshafen, Germany
Activity points
2,088
Hi,

Use this but before using read a little bit about sprintf function
Code:
unsigned char ConvertedData[10];
i = sprintf(ConvertedData,"%2.2f", FlaotValue);
LCD_DATA (ConvertedData);

enjoy!
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top