Eduard Sjoukes
/
FloatFormatSpecifier
Use the format specifiers with floatingpoint numbers
Revision 0:727af1f2cbe4, committed 2010-12-21
- Comitter:
- Eduard
- Date:
- Tue Dec 21 16:55:20 2010 +0000
- Commit message:
Changed in this revision
diff -r 000000000000 -r 727af1f2cbe4 OptrexLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OptrexLCD.lib Tue Dec 21 16:55:20 2010 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/Eduard/code/OptrexLCD/#ef7b6dec773f
diff -r 000000000000 -r 727af1f2cbe4 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Dec 21 16:55:20 2010 +0000 @@ -0,0 +1,80 @@ +/************************************************************************* +* Test of "format specifiers" and display those on a 20x4 Optrex LCD +* This LCD needs a different timing than a normal LCD, see the +* OptrexLCD program for more information. +* Probally this program will work also with a "normal" 20x4 LCD +* if not replace the OptrexLCD library with the original TextLCD library. +************************************************************************** +*/ +#include "mbed.h" +#include "OptrexLCD.h" + +DigitalOut BlinkLed(LED4); + +TextLCD lcd(p10, p12, p15, p16, p17, p18, TextLCD::LCD20x4 ); // rs, e, d0-d3 + +void WaitRefres(int a) // procedure for showing the result for 'a' seconds before getting the next datatypes +{ + wait(a); + lcd.cls(); + BlinkLed = !BlinkLed; +} + +int main() +{ + lcd.cls(); + BlinkLed = 1; // show the program is running + while(1) + { + lcd.printf(" The use of\n"); + lcd.printf(" Floatingpoint\n"); + lcd.printf(" Format Specifiers\n"); + lcd.printf(" @e.sjoukes"); + WaitRefres(3); + + float f = 0; + lcd.printf("Default notations 1\n"); + lcd.printf("for f= 0 \n"); + lcd.printf(" %%f= %f\n",f); //float notation takes 6 nummers after the point in this case 6 zero's. + WaitRefres(5); + + f = 12.345678; + lcd.printf("Default notations 2\n"); + lcd.printf("for f= 12.345678\n"); + lcd.printf(" %%f= %f\n",f); + WaitRefres(5); + + f = 12345.678; + lcd.printf("BUT \n"); + lcd.printf("for f= 12345.678\n"); + lcd.printf(" %%f= %f\n",f); //again notation takes 6 nummers after the point but now there is a fault + lcd.printf("the fault= 0.000266"); + WaitRefres(7.5); + + f =1234.12345; + lcd.printf("for f= 1234.12345\n"); + lcd.printf(" %%9.2f= %9.2f\n", f); + lcd.printf(" %%09.2f= %09.2f\n", f); + lcd.printf("%%+09.2f= %+09.2f", f); + WaitRefres(7.5); + + + lcd.printf("A very big number\n"); + float f1 = 10000000000000000000; + float f2 = 10000000000000000000; + f1 = f1*f2; //seems that it's not possible to write 100,000,000,000,000,000,000,000,000,000,000,000,000 + lcd.printf("for f= 1e38 %%f= \n%38.0f",f1); //at once to the program. + WaitRefres(5); + + lcd.printf("A too big number\n"); + lcd.printf("%%f= %f\n",f1*10); + lcd.printf("Uppercast with %%F\n"); + lcd.printf("%%F= %F\n",f1*10); + WaitRefres(5); + + lcd.printf("A very small number\n"); + f = 0.0000000000000000000000000000000000001; + lcd.printf("for f= 1e-38 %%f= \n%39.37f\n", f); + WaitRefres(5); + } +} \ No newline at end of file
diff -r 000000000000 -r 727af1f2cbe4 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Dec 21 16:55:20 2010 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e