2013-02-04 03:43:38 -08:00
/*
These are some utility functions and variables used through the main code
*/
2013-02-04 13:05:35 -08:00
# define MS_IN_MINUTE 60000
# define US_IN_MINUTE 60000000
2013-02-04 17:39:20 -08:00
/* The following functions help determine the required fuel constant. For more information about these calculations, please refer to http://www.megamanual.com/v22manual/mfuel.htm
Calc below are for metric inputs of temp ( degrees C ) and MAP ( kPa ) to produce kg / m3 .
*/
2013-02-04 03:43:38 -08:00
int AIRDEN ( int MAP , int temp )
{
2013-02-04 17:39:20 -08:00
return ( 1.2929 * 273.13 / ( temp + 273.13 ) * MAP / 101.325 ) ;
2013-02-04 03:43:38 -08:00
}
/*
This functino retuns a pulsewidth time ( in tenths of a ms ) given the following :
REQ_FUEL
VE : Lookup from the main MAP vs RPM fuel table
MAP : In KPa , read from the sensor
GammaE : Sum of Enrichment factors ( Cold start , acceleration ) . This is a multiplication factor ( Eg to add 10 % , this should be 110 )
injOpen : Injector open time . The time the injector take to open in tenths of a ms
*/
int PW ( int REQ_FUEL , int VE , int MAP , int GammaE , int injOpen )
{
return REQ_FUEL * ( VE / 100 ) * ( MAP / 100 ) * ( GammaE / 100 ) + injOpen ;
}