speeduino/globals.h

104 lines
2.7 KiB
C
Raw Normal View History

2013-07-08 17:43:41 -07:00
#include <Arduino.h>
byte ms_version = 20;
byte data_structure_version = 1; //This identifies the data structure when reading / writing.
2013-07-09 17:26:16 -07:00
//The status struct contains the current values for all 'live' variables
//In current version this is 64 bytes
2013-07-09 17:26:16 -07:00
struct statuses {
volatile boolean hasSync;
unsigned int RPM;
byte MAP;
byte TPS;
byte VE;
unsigned long PW; //In uS
};
//Page 1 of the config - See the ini file for further reference
//This mostly covers off variables that are required for fuel
struct config1 {
/*
byte engineCylinders; 1 // May support more than 1 cyl later. Always will assume 1 injector per cylinder.
byte engineInjectorSize; 80 // In cc/min
byte engineStoich; 14.7 // Stoichiometric ratio of fuel used
byte engineStrokes; 4 //Can be 2 stroke or 4 stroke, any other value will cause problems
byte engineDwell; 3000 //The spark dwell time in uS
*/
byte crankCold;
byte crankHot;
byte asePct;
byte aseCount; //Afterstart enrichment cycles. This is the number of ignition cycles that the afterstart enrichment % lasts for
byte wueBins[10]; //Warm up enrichment array (10 bytes)
byte taeBins1; //TPS based acceleration enrichment bin 1 of 4 (ms)
byte taeBins2; //TPS based acceleration enrichment bin 2 of 4 (ms)
byte taeBins3; //TPS based acceleration enrichment bin 3 of 4 (ms)
byte taeBins4; //TPS based acceleration enrichment bin 4 of 4 (ms)
byte taeColdA;
byte tpsThresh;
byte taeTime;
byte tdePct;
byte egoTemp;
byte egoCount;
byte egoDelta;
byte egoLimit;
byte reqFuel;
byte divider;
byte alternate;
byte injOpen;
byte injOCfuel;
byte injPwmP;
byte injPwmT;
byte battFac; //Whether to compensate pulsewidth for battery voltage (ms/v)
int rpmk;
byte mapType;
2013-07-16 05:31:01 -07:00
byte strokes;
byte injType;
byte nCylinders;
byte cltType;
byte matType;
byte nInjectors;
byte engineType;
byte egoType;
byte algorithm; //"Speed Density", "Alpha-N"
byte baroCorr;
byte primePulse;
byte egoRPM;
byte fastIdleT; //Fast idle temperature
byte egoSwitch;
byte taeColdM;
};
//Page 2 of the config - See the ini file for further reference
//This mostly covers off variables that are required for ignition
struct config2 {
2013-07-16 05:31:01 -07:00
byte triggerAngle;
byte FixAng;
byte Trim;
byte CrankAng;
byte IgHold;
byte Trig_plus;
byte TrigCrank;
byte IgInv;
byte oddfire;
byte IdleAdv;
byte IdleAdvTPS;
byte IdleAdvRPM;
byte IdleAdvCLT;
byte IdleDelayTime;
byte StgCycles;
2013-07-16 05:31:01 -07:00
byte dwellCont; //Fixed duty dwell control
byte dwellCrank;
byte dwellRun;
byte triggerTeeth; //The full count of teeth on the trigger wheel if there were no gaps
byte triggerMissingTeeth; //The size of the tooth gap (ie number of missing teeth)
};