Use new sensors for TPS (#1111)
* tps init * fix init * call init * use correct sensors, scale using constant * includes * handle error
This commit is contained in:
parent
6888b09c53
commit
6ebc49ce8b
|
@ -28,6 +28,10 @@ enum class SensorType : unsigned char {
|
|||
// This is the second sensor
|
||||
Tps1Secondary,
|
||||
|
||||
Tps2,
|
||||
Tps2Primary,
|
||||
Tps2Secondary,
|
||||
|
||||
// Leave me at the end!
|
||||
PlaceholderLast
|
||||
};
|
||||
|
|
|
@ -11,9 +11,6 @@
|
|||
|
||||
EXTERN_ENGINE;
|
||||
|
||||
// Scaled to 1000 counts = 5.0 volts
|
||||
#define TPS_TS_CONVERSION 200
|
||||
|
||||
/**
|
||||
* set mock_pedal_position X
|
||||
* See also directPwmValue
|
||||
|
|
|
@ -12,6 +12,9 @@
|
|||
#include "global.h"
|
||||
#include "engine_configuration.h"
|
||||
|
||||
// Scaled to 1000 counts = 5.0 volts
|
||||
#define TPS_TS_CONVERSION 200
|
||||
|
||||
bool hasPedalPositionSensor(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||
percent_t getPedalPosition(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||
/**
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
INIT_SRC_CPP = $(PROJECT_DIR)/init/sensor/init_sensors.cpp \
|
||||
$(PROJECT_DIR)/init/sensor/init_oil_pressure.cpp
|
||||
$(PROJECT_DIR)/init/sensor/init_oil_pressure.cpp \
|
||||
$(PROJECT_DIR)/init/sensor/init_tps.cpp
|
||||
|
|
|
@ -6,11 +6,15 @@
|
|||
#include "init.h"
|
||||
#include "sensor.h"
|
||||
|
||||
void initTps();
|
||||
void initOilPressure();
|
||||
|
||||
void initSensorCli();
|
||||
|
||||
void initSensors() {
|
||||
// TPS
|
||||
initTps();
|
||||
|
||||
// aux sensors
|
||||
initOilPressure();
|
||||
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
#include "adc_subscription.h"
|
||||
#include "engine.h"
|
||||
#include "error_handling.h"
|
||||
#include "global.h"
|
||||
#include "functional_sensor.h"
|
||||
#include "linear_func.h"
|
||||
#include "tps.h"
|
||||
|
||||
EXTERN_ENGINE;
|
||||
|
||||
LinearFunc tpsFunc1p;
|
||||
//LinearFunc tpsFunc1s;
|
||||
LinearFunc tpsFunc2p;
|
||||
//LinearFunc tpsFunc2s;
|
||||
|
||||
FunctionalSensor tpsSens1p(SensorType::Tps1, MS2NT(10));
|
||||
//FunctionalSensor tpsSens1s(SensorType::Tps1Secondary, MS2NT(10));
|
||||
FunctionalSensor tpsSens2p(SensorType::Tps2, MS2NT(10));
|
||||
//FunctionalSensor tpsSens2s(SensorType::Tps2Secondary, MS2NT(10));
|
||||
|
||||
static void initTpsFunc(LinearFunc& func, FunctionalSensor& sensor, adc_channel_e channel, float closed, float open) {
|
||||
// Only register if we have a sensor
|
||||
if (channel == EFI_ADC_NONE) {
|
||||
return;
|
||||
}
|
||||
|
||||
func.configure(
|
||||
closed / TPS_TS_CONVERSION, 0,
|
||||
open / TPS_TS_CONVERSION, 100,
|
||||
CONFIG(tpsErrorDetectionTooLow),
|
||||
CONFIG(tpsErrorDetectionTooHigh)
|
||||
);
|
||||
|
||||
sensor.setFunction(func);
|
||||
|
||||
AdcSubscription::SubscribeSensor(sensor, channel);
|
||||
|
||||
if (!sensor.Register()) {
|
||||
firmwareError(CUSTOM_INVALID_TPS_SETTING, "Duplicate TPS registration for TPS sensor");
|
||||
}
|
||||
}
|
||||
|
||||
void initTps() {
|
||||
initTpsFunc(tpsFunc1p, tpsSens1p, CONFIG(tps1_1AdcChannel), CONFIG(tpsMin), CONFIG(tpsMax));
|
||||
initTpsFunc(tpsFunc2p, tpsSens2p, CONFIG(tps2_1AdcChannel), CONFIG(tps2Min), CONFIG(tps2Max));
|
||||
}
|
Loading…
Reference in New Issue