  | 
    
   
      | 
    
    
   
   
    
This is the conversion from the "low cam" 8-bit RPM values used for VTEC crossover points and in the low-cam tables.
It involves some modular arithmetic, so it's easier to break it up into a couple extra steps.
# Y = input value, 0 to 256
# let H = floor(Y/64) ''Where floor(x) = trunc(x) = int(x) = integer part of x. Fractional part truncated. Whatever you want to call it''
# let L = Y - (H-1)*64
# RPM = 1875000 * L * 2^H / 240000
You can also do it this way, using the modulo operator:
# Y = input value, 0 to 256
# Q = Y div 64 ''(integer division, same as floor(Y/64) above)''
# R = Y mod 64 ''(modulus, i.e. remainder after division)''
# RPM = (2^Q)*(floor(R*500/64) + 500)
This turns out to be a piecewise linear scale:
-   00h-40h = 500-1000 RPM
 
-   40h-80h = 1000-2000 RPM
 
-   80h-C0h = 2000-4000 RPM
 
-   C0h-100h = 4000-8000 RPM
 
 
 
EDITED COMMENT: <---- Linear scale??? yeah right!...this formula need to go back to the "drawing board". The values below shows a perfect exponential scale! I have trying this equation and it does not get exact values. Ben's equation on BRE are more accurate at least on test values...( I don't know the formula for BRE))
That's ''piecewise''-linear.  Four linear ranges.  It's not a smooth exponential curve.  The first formula fairly closely follows the OBD1  code, while the second is a simplification which gets slightly different results with integer math.  By what measure do you consider which is more accurate?  See http://pgmfi.org/phorum/read.php?f=13&i=3314&t=2968 for reference. --AndySloane
 |   
       
      
      
      
       Copyright © 2002-present by the contributing authors. All material on this collaboration platform is the property of the  contributing authors, and is covered by the Non-Commercial Share-Alike License unless explicitly stated otherwise. | 
          
       
         
    |