fuelAndIgnitionCalcs.h

Go to the documentation of this file.
00001 /*      fuelAndIgnitionCalcs.h
00002 
00003         Copyright 2008 Fred Cooke
00004 
00005         This file is part of the FreeEMS project.
00006 
00007         FreeEMS software is free software: you can redistribute it and/or modify
00008         it under the terms of the GNU General Public License as published by
00009         the Free Software Foundation, either version 3 of the License, or
00010         (at your option) any later version.
00011 
00012         FreeEMS software is distributed in the hope that it will be useful,
00013         but WITHOUT ANY WARRANTY; without even the implied warranty of
00014         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015         GNU General Public License for more details.
00016 
00017         You should have received a copy of the GNU General Public License
00018         along with any FreeEMS software.  If not, see <http://www.gnu.org/licenses/>.
00019 
00020         We ask that if you make any changes to this file you send them upstream to us at admin@diyefi.org
00021 
00022         Thank you for choosing FreeEMS to run your engine! */
00023 
00024 /* Header file multiple inclusion protection courtesy eclipse Header Template   */
00025 /* and http://gcc.gnu.org/onlinedocs/gcc-3.1.1/cpp/ C pre processor manual              */
00026 #ifndef FILE_FUELANDIGNITIONCALCS_H_SEEN
00027 #define FILE_FUELANDIGNITIONCALCS_H_SEEN
00028 
00029 #ifdef FUELANDIGNITIONCALCS_C
00030 #define EXTERN
00031 #else
00032 #define EXTERN extern
00033 #endif
00034 
00035 EXTERN void calculateFuelAndIgnition(void) FPAGE_FE;
00036 
00037 /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Always show your working! &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
00038 
00039 /* At least, that is what my teachers used to say 15 years ago ;-) */
00040 
00041 /******************** The full calculations in an unusable form ******************/
00042 
00043 /* Full calcs on a single line */
00044 //      final master PW = ((msToTicks * (molarMassOfAir/ molarMassOfAirDivisor) * (airPressure / airPressureDivisor) * (lookedUpVE / (lookedUpVEDivisor * VEpercentageDivisor)) * (perCylinderVolume / perCylinderVolumeDivisor)) / ((universalGasConstant / universalGasConstantDivisor) * (airInletTemp / airInletTempDivisor) * (stoichiometricAFR / stoichiometricAFRDivisor) * (desiredLambda / desiredLambdaDivisor) * (densityOfFuel / (densityOfFuelDivisor * densityOfFuelUnitDivisor)) * (injectorFlow / (injectorFlowUnitDivisor * injectorFlowDivisor))));
00045 
00046 /* stripped with only variables and divisors left.*/
00047 //      finalMasterPulseWidth = (((airPressure / airPressureDivisor) * (lookedUpVE / (lookedUpVEDivisor * VEpercentageDivisor))) / ((airInletTemp / airInletTempDivisor) * (desiredLambda / desiredLambdaDivisor) * (densityOfFuel / (densityOfFuelDivisor * densityOfFuelUnitDivisor))));
00048 
00049 /* stripped with only divisors left.*/
00050 //      finalMasterPulseWidth = (airInletTempDivisor * oneLambdaDivisor * densityOfFuelTotalDivisor) / (airPressureDivisor * VETotalDivisor) ;
00051 
00052 /* stripped with only divisors left.*/
00053 //      divisors = 1;
00054 
00055 /* totally stripped with no divisors */
00056 //      finalMasterPulseWidth = ((airPressure * lookedUpVE) / (airInletTemp * desiredLambda * densityOfFuel));
00057 
00058 /**************************** The constant calculations **************************/
00059 
00060 //      unsigned short constant;
00061         /* stripped with only constants and divisors left.*/
00062 //      constant = ((msToTicks * (molarMassOfAir/ molarMassOfAirDivisor) * (perCylinderVolume / perCylinderVolumeDivisor)) / ((universalGasConstant / universalGasConstantDivisor) * (stoichiometricAFR / stoichiometricAFRDivisor) * (injectorFlow / (injectorFlowUnitDivisor * injectorFlowDivisor))));
00063 
00064         /* stripped with only divisors left. Top divisors go on bottom and bottom on top! */
00065 //      constDiv = (universalGasConstantDivisor * stoichiometricAFRDivisor * injectorFlowTotalDivisor) / (molarMassOfAirDivisor * perCylinderVolumeDivisor);
00066         //1310720= (4096                                                * 1024                                     * 1024000                             ) / (100                                       * 32768                                   );
00067 
00068         /* stripped with only constants left.*/
00069 //      constant = ((msToTicks * molarMassOfAir * perCylinderVolume) / (universalGasConstant * stoichiometricAFR * injectorFlow));
00070         //nstant = ((1250          * 2897                       * 16384                    ) / (34056                            * 15053                         * 4096            ));
00071 
00072 /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
00073 
00074 #undef EXTERN
00075 
00076 #else
00077         /* let us know if we are being untidy with headers */
00078         #warning "Header file FUELANDIGNITIONCALCS_H seen before, sort it out!"
00079 /* end of the wrapper ifdef from the very top */
00080 #endif

Generated on Mon Dec 22 21:29:18 2008 for freeems by  doxygen 1.5.2