fome-fw/firmware/controllers/sensors/tps.h

59 lines
1.8 KiB
C
Raw Normal View History

2015-07-10 06:01:56 -07:00
/**
* @file tps.h
* @brief
*
*
* @date Nov 15, 2013
2017-01-03 03:05:22 -08:00
* @author Andrey Belomutskiy, (c) 2012-2017
2015-07-10 06:01:56 -07:00
*/
#ifndef TPS_H_
#define TPS_H_
#include "global.h"
#include "engine_configuration.h"
2016-01-31 18:02:03 -08:00
// we have 12 bit precision and TS uses 10 bit precision
#define TPS_TS_CONVERSION 4
2017-05-15 20:33:22 -07:00
bool hasPedalPositionSensor(DECLARE_ENGINE_PARAMETER_SIGNATURE);
percent_t getPedalPosition(DECLARE_ENGINE_PARAMETER_SIGNATURE);
2015-07-10 06:01:56 -07:00
/**
* Throttle Position Sensor
* In case of dual TPS this function would return logical TPS position
* @return Current TPS position, percent of WOT. 0 means idle and 100 means Wide Open Throttle
*/
2017-05-15 20:33:22 -07:00
percent_t getTPS(DECLARE_ENGINE_PARAMETER_SIGNATURE);
2019-11-29 16:06:50 -08:00
percent_t getTPSWithIndex(int index DECLARE_ENGINE_PARAMETER_SUFFIX);
2017-05-15 20:33:22 -07:00
bool hasTpsSensor(DECLARE_ENGINE_PARAMETER_SIGNATURE);
2015-07-10 06:01:56 -07:00
int convertVoltageTo10bitADC(float voltage);
2019-11-29 17:15:29 -08:00
int getTPS12bitAdc(int index DECLARE_ENGINE_PARAMETER_SUFFIX);
bool hasTps2(DECLARE_ENGINE_PARAMETER_SIGNATURE);
2019-11-29 17:15:29 -08:00
#define getTPS10bitAdc() (getTPS12bitAdc(0 PASS_ENGINE_PARAMETER_SUFFIX) / TPS_TS_CONVERSION)
2017-05-15 20:33:22 -07:00
float getTPSVoltage(DECLARE_ENGINE_PARAMETER_SIGNATURE);
2019-12-09 21:07:46 -08:00
percent_t getTpsValue(int index, int adc DECLARE_ENGINE_PARAMETER_SUFFIX);
void setBosch0280750009(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void setMockTpsAdc(percent_t tpsPosition DECLARE_ENGINE_PARAMETER_SUFFIX);
void setMockTpsValue(percent_t tpsPosition DECLARE_ENGINE_PARAMETER_SUFFIX);
void setMockThrottlePedalPosition(percent_t value DECLARE_ENGINE_PARAMETER_SUFFIX);
2019-04-29 22:21:09 -07:00
void grabTPSIsClosed();
void grabTPSIsWideOpen();
2019-04-30 15:46:39 -07:00
void grabPedalIsUp();
void grabPedalIsWideOpen();
2015-07-10 06:01:56 -07:00
typedef struct {
2016-02-04 11:01:38 -08:00
efitimeus_t prevTime;
2015-07-10 06:01:56 -07:00
// value 0-100%
float prevValue;
2016-02-04 11:01:38 -08:00
efitimeus_t curTime;
2015-07-10 06:01:56 -07:00
// value 0-100%
float curValue;
// % per second
float rateOfChange;
} tps_roc_s;
2016-02-04 11:01:38 -08:00
//void saveTpsState(efitimeus_t now, float curValue);
2015-07-10 06:01:56 -07:00
float getTpsRateOfChange(void);
#endif