rusefi-1/firmware/controllers/sensors/maf.cpp

53 lines
1.3 KiB
C++
Raw Normal View History

2014-08-29 07:52:33 -07:00
#include "main.h"
2014-11-11 14:03:38 -08:00
#include "engine.h"
2014-08-29 07:52:33 -07:00
#include "adc_inputs.h"
#include "maf.h"
2015-02-11 18:08:16 -08:00
EXTERN_ENGINE
;
2014-08-29 07:52:33 -07:00
2014-11-11 14:03:38 -08:00
float getMaf(DECLARE_ENGINE_PARAMETER_F) {
2014-08-29 07:52:33 -07:00
return getMafT(engineConfiguration);
}
2015-02-11 18:08:16 -08:00
2015-02-12 19:04:12 -08:00
/**
* @return kg/hour value
*/
float getRealMaf(DECLARE_ENGINE_PARAMETER_F) {
int mafAdc = getAdcValue(engineConfiguration->mafAdcChannel);
/**
* here we drop from 12 bit ADC to 8 bit index
*/
return engine->mafDecodingLookup[mafAdc >> 4];
}
2015-02-11 18:08:16 -08:00
void setBosch0280218037(engine_configuration_s *engineConfiguration) {
int i = 0;
engineConfiguration->mafDecoding[i] = -34.5;
engineConfiguration->mafDecodingBins[i++] = 0;
engineConfiguration->mafDecoding[i] = -6;
engineConfiguration->mafDecodingBins[i++] = 0.78125;
engineConfiguration->mafDecoding[i] = 10.5;
engineConfiguration->mafDecodingBins[i++] = 1.38671875;
engineConfiguration->mafDecoding[i] = 105.3;
engineConfiguration->mafDecodingBins[i++] = 2.91015625;
engineConfiguration->mafDecoding[i] = 387.5;
engineConfiguration->mafDecodingBins[i++] = 4.2578125;
engineConfiguration->mafDecoding[i] = 738;
engineConfiguration->mafDecodingBins[i++] = 4.98046875;
2015-02-12 16:08:02 -08:00
/**
* unrealistic values just to make binary search happy
*/
2015-02-11 18:08:16 -08:00
while (i < MAF_DECODING_COUNT) {
2015-02-12 16:08:02 -08:00
engineConfiguration->mafDecoding[i] = 200;
engineConfiguration->mafDecodingBins[i] = 10 + i;
2015-02-11 19:04:21 -08:00
i++;
2015-02-11 18:08:16 -08:00
}
}