So, other thread didn't help much?
The simple solution is Excell, or LibreOffice, where you play around with math, and see how it affects a chart. Only when you like what you see, you ready to transfer it in C.
I am currently using this function to achieve my goal: y = (1500 / ((4/3)^(1/670))^1080) • ((4/3)^(1/670))Unfortunately, the effect of the exponential behavior is very minor and unnoticeable in the application I am using it for in my program. How can I exaggerate the exponential behavior of the function whilst maintaining the two points (1080, 1500) and (1750, 2000)?
See if this has a noticeable effect:y = 1500 + .004455(x-1080)*(x-1080)
Where is the x in the function?
How would you implement the "basic" function if it was between the points (0,0) and (1,1) ? If you can define that the rest is scaling.
Easiest option is to use - http://arduino.cc/playground/Main/MultiMap - which can mimic all non linear functions
Yes, but he uses map() which uses long value types and I need a high-speed function, so I'm trying to stay away from 32 and 64 bit numbers. (although I have to use 32 bit because Arduino doesn't support 16 bit float values?)
Quote from: JavaMan on July 22, 2012, 09:07:15 PMSee if this has a noticeable effect:y = 1500 + .004455(x-1080)*(x-1080)Thank you, I'll give it a shot. How did you calculate it?
For the curious, here is the equation I am now using: y=((1/897.8 )*(x-1080)^2)+1500
I'm using unsigned 16 bit integers (uint16_t) so I'd assume that will work?
for the curious, here is the equation I am now using: y=((1/897.8 )*(x-1080)^2)+1500