Hiya- There ought to be a(n) FAQ about this one somewhere. But, I'll take a shot at answering this. With the floating point routines (any of them), one usually has multiple instances of requirements for doing these operations so they are relagated to libraries, or in our case, subroutine calls. Floating point numbers consist of two parts a mantissa and a characteristic. This is like scientific notation except usually base 2. So we have two parts to the number. The "number" itself (say 5.5(base10)) and a base 2 exponential signed integer that converts the "number" to it's real range. So a 5.5 raised to x10^2 would represent 550. Note that I use the base 10 rules, not the base 2. ANYWAY, a mulitplication of two floating point numbers involve a couple of parts. Multiplying the "number" and adding the exponents. For division, a division of the numbers and a subtraction of the exponents, etc. Typically floating point numbers are represented by multibyte values of these two parts. You load the two numbers of interest into a set of general registers and call the routine. The results magically appear at the end of the routine and the results are read from the general registers and manipulated as seen fit. I didn't mention either the precision nor the process of these numbers. There are many standards for these formats. Of course, one has to read the interface documentation for the routines to use them. Some of them are "IEEE" standards which have their own set of criteria. Some of them do not follow this standard. It is your choice to determine the best set for your application. For example, some of the work that I used to do only needed "slide rule" precision. So three digits of accuracy were all that was needed. This allowed for a much FASTER implementation of execution of code vs. ones with either greater precision or range. The old "you can have it fast, good or cheap. Pick two" rule applies here too. So, in summary my friend: "friendly guides on how to do this?" The answer is: "carefully". All kidding aside, a general purpose computer internals book will apply just as well to PICs as is does for Big Blues. Just the hardware is a little different. Cheers, Rich S. ---- Original Message ---- From: Matthew Rhys-Roberts Date: Wed 7/25/07 6:14 To: Microcontroller discussion list - Public. Subject: [PIC] Can a 16F84 handle FP maths? If so, how? (Inspired by a similar question on 16F877A) The last thing I did before leaving my last job was to start investigating how a humble 16F84 could handle signed, floating point arithmetic (addition, subtraction, mult & div). I never quite got my head around how to implement the standard Microchip math libraries into my code. Please can anyone point me to any friendly guides on how to do this? Thanks, Matt -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist