Hi Steve,
a Fixed Point library may really come in handy for some calculations. But for something so simple like HSV (or HSB) to RGB conversion one actually dosen't even need fixed point math. You can do the whole conversion with just integer calculations, if you know, what value range you want to achieve for R, G and B (0 to 255 for 8-Bit-PWM for example) and if you are then willing to accordingly set the value range for Hue and Saturation to keep the math simple and fast.
Of course if you just stick to the formulas given in Wikipedia for HSV-to-RGB-conversion, then you might be driven to use floating point math.
If you're intersted i can post my plain integer routines for HSV-to-RGB-conversion, which i actually did for Atmel AVR Chips (which are of course by factors slower than an ARM Cortex M3). The routines are in plain C without AVR specifics, so should run ok on a mbed.
Best regards
Nenad
I have shared a new library that supports fixed point arithmetic. This allows you to get a few digits of floating point precision without using floats or doubles, which you may have noticed are VERY SLOW since the M3 doesn't have an FPU. It has a templatized C++ class wrapper around it, so you can declare a fixed point variable and use it in expressions with normal ints and floats. The template allows you to specify how many bits for the integer portion and how many for the fractional portion. It also has sin/cos/sqrt and other functions.
It took my ISR, which was using float to do HSV to RGB conversion, from over 400uS to about 100uS, and I still think there's more left.
fixedpoint
To be clear, I didn't write this, the author is credited in the library description. I have added a few things however.