de init frequency sensor (#3183)

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
This commit is contained in:
Matthew Kennedy 2021-08-20 23:02:05 -07:00 committed by GitHub
parent 044ed3272f
commit ec9dcce377
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 0 deletions

View File

@ -15,6 +15,8 @@ static void freqSensorExtiCallback(void* arg) {
}
void FrequencySensor::init(brain_pin_e pin) {
m_pin = pin;
#if EFI_PROD_CODE
// todo: refactor https://github.com/rusefi/rusefi/issues/2123
efiExtiEnablePin("flex", pin,
@ -23,6 +25,18 @@ void FrequencySensor::init(brain_pin_e pin) {
#endif // EFI_PROD_CODE
}
void FrequencySensor::deInit() {
if (!isBrainPinValid(m_pin)) {
return;
}
#if EFI_PROD_CODE
efiExtiDisablePin(m_pin);
#endif
m_pin = GPIO_UNASSIGNED;
}
void FrequencySensor::onEdge(efitick_t nowNt) {
float frequency = 1 / m_edgeTimer.getElapsedSecondsAndReset(nowNt);

View File

@ -7,9 +7,11 @@ public:
: FunctionalSensor(type, timeoutPeriod) { }
void init(brain_pin_e pin);
void deInit();
void onEdge(efitick_t nowNt);
private:
Timer m_edgeTimer;
brain_pin_e m_pin = GPIO_UNASSIGNED;
};

View File

@ -36,3 +36,4 @@ void reconfigureVbatt(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void reconfigureTps(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void reconfigureThermistors(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void reconfigureOilPressure(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void deInitFlexSensor();

View File

@ -21,3 +21,7 @@ void initFlexSensor(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
flexSensor.init(pin);
flexSensor.Register();
}
void deInitFlexSensor() {
flexSensor.deInit();
}

View File

@ -35,10 +35,12 @@ void initNewSensors(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
}
void reconfigureSensors(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
deInitFlexSensor();
reconfigureVbatt(PASS_CONFIG_PARAMETER_SIGNATURE);
reconfigureTps(PASS_CONFIG_PARAMETER_SIGNATURE);
reconfigureOilPressure(PASS_CONFIG_PARAMETER_SIGNATURE);
reconfigureThermistors(PASS_CONFIG_PARAMETER_SIGNATURE);
initFlexSensor(PASS_CONFIG_PARAMETER_SIGNATURE);
}
// Mocking/testing helpers