FW: Re: Found.. 8051 FAQ.
Ciciora Steve
sciciora at al.noaa.gov
Wed Nov 9 22:30:45 GMT 1994
(stuff deleted)
>> It sounds like your line of reasoning is very similar to mine! I'm
>> working on some code to do 4 point linear interpolation for the fuel map.
>> My fuel map will take an 8 bit number (0->255) for the engine RPM and an
>> 8 bit number for the engine load.
>One problem with using a 255 RPM x 255 LOAD = 64K settings - >impractical
>(impossible) to calibrate each and every one of those points.
No, you misunderstood. The map in the EFI box has 17 x 17 x 8 bits = 289 bytes
stored. These are the values the user can modify. What I do is 4 point linear
interpolation between the 4 points nearest to the desired value.
Impractical/impossible? Remember Y=mX + B? Just do it 3 times using integer
math. The results (the way I do it) is a 16 bit number. Just use the number
of Most Significant Bits you need. At this point I'm not willing to guess how
many bits I will need.
I only use the 4 most significant bits of the 8 bit load and the 8 bit RPM
numbers to get my 4 points from my table to interpolate between. 16 RPM x 16
Load = 256 values. If you want a data point on each side of these 256 values,
you can use a 17 x 17 point table. I use the 4 least significant bits to scale
between the 17 x 17 data points.
>I guess you could do your on dyno/road calibration with something >like
>what I suggested above (32 load settings x 16 rpm settngs) and then
>linearly interpolate the intermediate settings (Either in real time >in
>the processor or via a PC and program the memory with the full >255x255 map)
Yup. I'm only guessing that a 17 x 17 map will be enough. What did you base
your decision on using 32 load numbers on? Do you know something I don't?
>> My map will be 17 x 17 x 8 bit numbers.
>IE (17 load x 17 rpm settings?)
Yup.
>I'm un-decided if an 8 bit injection time will have enough 'dynamic
>range' from idle to full throttle, though it's probably easier to >deal with
an 8 bit number.
My 4 bit linear interpolation code returns a 16 bit result. I'm sure that 16
bits is more than needed, and would not be suprised if 8 bits is enough. I'm
not that far along to decide (yet...).
- Steven Ciciora
More information about the Diy_efi
mailing list