Speeduino
Loading...
Searching...
No Matches
sensors.h
Go to the documentation of this file.
1#ifndef SENSORS_H
2#define SENSORS_H
3
4#include "globals.h"
5
6// The following are alpha values for the ADC filters.
7// Their values are from 0 to 240, with 0 being no filtering and 240 being maximum
8#define ADCFILTER_TPS_DEFAULT 50U
9#define ADCFILTER_CLT_DEFAULT 180U
10#define ADCFILTER_IAT_DEFAULT 180U
11#define ADCFILTER_O2_DEFAULT 128U
12#define ADCFILTER_BAT_DEFAULT 128U
13#define ADCFILTER_MAP_DEFAULT 20U //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response
14#define ADCFILTER_BARO_DEFAULT 64U
15
16#define ADCFILTER_PSI_DEFAULT 150U //not currently configurable at runtime, used for misc pressure sensors, oil, fuel, etc.
17
18#define FILTER_FLEX_DEFAULT 75U
19
20#define VSS_GEAR_HYSTERESIS 10U
21#define VSS_SAMPLES 4U //Must be a power of 2 and smaller than 255
22
23extern volatile byte flexCounter;
24extern volatile uint32_t flexPulseWidth;
25
26#define BIT_SENSORS_AUX_ENBL 0
27#define BIT_SENSORS_BARO_SAVED 1
28#define BIT_SENSORS_UNUSED2 2
29#define BIT_SENSORS_UNUSED3 3
30#define BIT_SENSORS_UNUSED4 4
31#define BIT_SENSORS_UNUSED5 5
32#define BIT_SENSORS_UNUSED6 6
33#define BIT_SENSORS_UNUSED7 7
34extern uint8_t statusSensors; //Uses the above status bits
35
36void initialiseADC(void);
37void flexPulse(void);
39void knockPulse(void);
41void vssPulse(void);
44
46void initialiseTPS(void);
47
49void initialiseCLT(void);
50
51#define TPS_READ_FREQUENCY 30 //ONLY VALID VALUES ARE 15 or 30!!!
52
54#if TPS_READ_FREQUENCY==30
55#define TPS_READ_TIMER_BIT BIT_TIMER_30HZ
56#elif TPS_READ_FREQUENCY==15
57#define TPS_READ_TIMER_BIT BIT_TIMER_15HZ
58#else
59#error
60#endif
61
63#define CLT_READ_TIMER_BIT BIT_TIMER_4HZ
64
66#define IAT_READ_TIMER_BIT BIT_TIMER_4HZ
67
69#define O2_READ_TIMER_BIT BIT_TIMER_30HZ
70
72#define BAT_READ_TIMER_BIT BIT_TIMER_4HZ
73
75#define BARO_READ_TIMER_BIT BIT_TIMER_1HZ
76
78#define MAP_READ_TIMER_BIT BIT_TIMER_1KHZ
79
82
84void initialiseMAPBaro(void);
85void resetMAPcycleAndEvent(void);
86
88
91
94
98
99#endif // SENSORS_H
const config2 & page2
Definition engineProtection.cpp:192
volatile unsigned int toothHistoryIndex
Current index to toothHistory array.
Definition globals.cpp:39
static TIntegral readSerialIntegralTimeout(void)
Reads an integral type, timing out if necessary.
Definition comms.cpp:175
void initialiseTPS(void)
Initial reading of the TPS sensor, primarily to detect flood clear state.
Definition sensors.cpp:605
void initialiseFlexSensor(config2 &page2, statuses &current, uint8_t pin)
Definition sensors.cpp:991
uint8_t statusSensors
Definition sensors.cpp:33
uint32_t vssGetPulseGap(byte toothHistoryIndex)
Returns the VSS pulse gap for a given history point.
Definition sensors.cpp:788
void initialiseMAPBaro(void)
Initialize the MAP calculation & Baro values.
Definition sensors.cpp:677
void vssPulse(void)
The ISR function for VSS pulses.
Definition sensors.cpp:1024
uint32_t getMAPDeltaTime(void)
Get the time in µS between the last 2 MAP readings.
Definition sensors.cpp:563
int16_t getMAPDelta(void)
Get the MAP change between the last 2 readings.
Definition sensors.cpp:558
uint16_t readAuxdigital(uint8_t digitalPin)
Definition sensors.cpp:1039
table2D_u16_u8_32 cltCalibrationTable
void readPolledSensors(byte loopTimer)
Read the sensors that are polled at every loop. This includes the TPS, MAP, CLT, IAT and O2 sensors.
void resetMAPcycleAndEvent(void)
Definition sensors.cpp:699
table2D_u16_u8_32 o2CalibrationTable
table2D_u16_u8_32 iatCalibrationTable
void flexPulse(void)
Definition sensors.cpp:977
volatile byte flexCounter
Definition sensors.cpp:38
uint8_t getAnalogKnock(void)
Definition sensors.cpp:946
void knockPulse(void)
Definition sensors.cpp:1011
void initialiseADC(void)
Definition sensors.cpp:151
volatile uint32_t flexPulseWidth
Definition sensors.cpp:40
void initialiseCLT(void)
Initial reading of the coolant sensor, primarily to make sure the priming pulsewidth is correct.
Definition sensors.cpp:615
uint16_t readAuxanalog(uint8_t analogPin)
Definition sensors.cpp:1034
Definition config_pages.h:176
The status struct with current values for all 'live' variables.
Definition statuses.h:25
A 2D table.
Definition table2d.h:109