Hi, as I got no answer to the problem of printing floats in pic16 port, I made a small routine to print numbers in the form DDDDD.MMMMMMM to 8 decimal places, it's very simple, but can be useful to somebody else.
The usart_send_2 routine is used to send chars to the serial port, so can be implemented by the user in different ways. Olgierd ---------------------- // code /** Converts a float number into a string considering 'left_min_zeros' numbers before the decimal place and 'decimals' decimals */ void send_float(float val, unsigned char decimals , unsigned char left_min_zeros){ unsigned char i,j; union float_long fl1; unsigned char sign,et; char exp; char int_part[10],dec_part[10]; unsigned long mantissa,mint,mflot,sum_dec,mask,comp; //Lookup Table of 1e8/2^i for calculation of decimal valued unsigned long dec_vals[23]={ 50000000 , 25000000 , 12500000 , 6250000 , 3125000 , 1562500 , 781250 , 390625 , 195312 , 97656 , 48828 , 24414 , 12207 , 6103 , 3051 , 1525 , 762 , 381 , 190 , 95 , 47 , 23 , 12 }; fl1.f = val; sign=SIGN(fl1.l); exp = EXP (fl1.l) - 127; mantissa=MANT(fl1.l); mint=mantissa; for(i=0;i<23-exp;i++){ mint=mint >> 1; } et=9+exp; mflot = ((mantissa << et) >> 9); // now do an arithemtic sum of decimals values sum_dec=0; for(i=0;i<23;i++){ mask=1ul<<i; comp=mask & mflot; if (comp != 0ul ){ sum_dec=sum_dec+dec_vals[22-i]; } } // now I print the number ltoa(mint, int_part, 10); ltoa(sum_dec, dec_part, 10); if (sign==1) usart_send_2('-'); else usart_send_2(' '); // check the sizes, reuse the exp variable exp = left_min_zeros-strlen(int_part); // do i have to add zeros a beginning if(exp > 0) for(i=0;i<exp;i++) usart_send_2('0'); // send the integer part send_uint(mint); usart_send_2('.'); // check the zeros of decimal part, reuse the exp variable exp = 8-strlen(dec_part); if(exp > 0) for(i=0;i<exp;i++) usart_send_2('0'); // send the decimal part for(i=0;i<decimals-exp;i++) usart_send_2(dec_part[i]); } Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user