Floating point with pretty much any PIC compiler just isn't very efficient.
It's handy to have, but I try to avoid using fp unless it's just absolutely
necessary.
CCS C compiler with 16F876a target.
ROM used: 670 words (8%)Code:void main() { float a; a = 2.45 * 299.95; a /= 2.46; printf("a = %3.3f\r\n",a); } /* returns a = 298.730 */
Largest free fragment is 2048
RAM used: 11 (6%) at main() level
29 (17%) worst case
==========
Proton BASIC compiler, same target;
Eats-up 487 words 5.94% code space, 47 bytes 12.5% RAM.Code:Dim a As Float a = 2.45 * 299.95; a = a / 2.46; HRSOut "a = ",Dec a,13,10 ' returns a = 298.730
C is a little more efficient at managing RAM, but they both chew up a gob
of resources even for simple fp calculations.
If you move up to the 18F series, it's a lot more bearable, but might still be
a challenge squeezing a bunch of fp calcs in there.




Bookmarks