Added some testing code and fixed some minor issues (req_fuel must be float)
This commit is contained in:
parent
90d2594825
commit
439a936d87
|
@ -23,7 +23,7 @@ Need to calculate the req_fuel figure here, preferably in pre-processor macro
|
||||||
#include "table.h"
|
#include "table.h"
|
||||||
#include "testing.h"
|
#include "testing.h"
|
||||||
|
|
||||||
int req_fuel = ((engineCapacity / engineInjectorSize) / engineCylinders / engineStoich) * 100; // This doesn't seem quite correct, but I can't find why. It will be close enough to start an engine
|
float req_fuel = ((engineCapacity / engineInjectorSize) / engineCylinders / engineStoich) * 100; // This doesn't seem quite correct, but I can't find why. It will be close enough to start an engine
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ void setup() {
|
||||||
|
|
||||||
req_fuel = req_fuel / engineSquirtsPerCycle; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on)
|
req_fuel = req_fuel / engineSquirtsPerCycle; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on)
|
||||||
|
|
||||||
|
Serial.begin(9600);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ void loop()
|
||||||
}
|
}
|
||||||
|
|
||||||
//Get the current MAP value
|
//Get the current MAP value
|
||||||
int MAP = 1; //Placeholder
|
int MAP = 50; //Placeholder
|
||||||
|
|
||||||
//Perform lookup into fuel map for RPM vs MAP value
|
//Perform lookup into fuel map for RPM vs MAP value
|
||||||
int VE = getTableValue(fuelTable, rpm, MAP);
|
int VE = getTableValue(fuelTable, rpm, MAP);
|
||||||
|
@ -103,12 +103,24 @@ void loop()
|
||||||
else
|
else
|
||||||
{ getSync(); }
|
{ getSync(); }
|
||||||
|
|
||||||
|
Serial.print("Time");
|
||||||
|
Serial.println(micros());
|
||||||
|
Serial.println(toothLastToothTime);
|
||||||
|
Serial.println(toothLastMinusOneToothTime);
|
||||||
|
Serial.println(rpm);
|
||||||
|
delay(100);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//The get Sync function attempts to wait
|
//The get Sync function attempts to wait
|
||||||
void getSync()
|
void getSync()
|
||||||
{
|
{
|
||||||
|
//The are some placeholder values so we can get a fake RPM
|
||||||
|
toothLastMinusOneToothTime = micros();
|
||||||
|
delay(1); //A 1000us delay should make for about a 5000rpm test speed with a 12 tooth wheel(60000000us / (1000us * triggerTeeth)
|
||||||
|
toothLastToothTime = micros();
|
||||||
|
|
||||||
|
hasSync = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
25
testing.h
25
testing.h
|
@ -4,19 +4,20 @@ This file has a few functions that are helpful for testing such as creating dumm
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Aim is to create an 8x8 table that looks like the below:
|
Aim is to create an 8x8 table that looks like the below:
|
||||||
VE
|
MAP
|
||||||
_____________________________________________
|
______________________________________________
|
||||||
|100| | | | | | | | 90 |
|
|100|| 78 | 88 | 92 | 95 | 97 |101 |107 |110 |
|
||||||
| 88|
|
| 88|| 58 |
|
||||||
| 75|
|
| 75|| 45 |
|
||||||
| 63|
|
| 63|| 35 |
|
||||||
| 50|
|
| 50|| 28 | 30
|
||||||
| 38|
|
| 38|| 22 | 23 |
|
||||||
| 25| 17 | 21 |
|
| 25|| 17 | 21 |
|
||||||
| 13| 15 | 20 |
|
| 13|| 15 | 20 | 25 |
|
||||||
| | 500|1500|2000|2500|3000|4000|5000|6000| RPM
|
| || 500|1500|2000|2500|3000|4000|5000|6000| RPM
|
||||||
|
|
||||||
This is a fairly standard 8x8 VE vs RPM 2D map
|
This is a fairly realistic 8x8 VE vs RPM 2D map
|
||||||
|
Here is a run through of how the interpolation would flow:
|
||||||
Pass in:
|
Pass in:
|
||||||
x = 1000
|
x = 1000
|
||||||
y = 20
|
y = 20
|
||||||
|
|
Loading…
Reference in New Issue