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#if defined(CORE_AVR)
27 #define READ_FLEX() ((*flex_pin_port & flex_pin_mask) ? true : false)
28#else
29 #define READ_FLEX() digitalRead(pinFlex)
30#endif
31
32#define BIT_SENSORS_AUX_ENBL 0
33#define BIT_SENSORS_BARO_SAVED 1
34#define BIT_SENSORS_UNUSED2 2
35#define BIT_SENSORS_UNUSED3 3
36#define BIT_SENSORS_UNUSED4 4
37#define BIT_SENSORS_UNUSED5 5
38#define BIT_SENSORS_UNUSED6 6
39#define BIT_SENSORS_UNUSED7 7
40extern uint8_t statusSensors; //Uses the above status bits
41
42void initialiseADC(void);
43void flexPulse(void);
44void knockPulse(void);
46void vssPulse(void);
49
51void initialiseTPS(void);
52
54void initialiseCLT(void);
55
56#define TPS_READ_FREQUENCY 30 //ONLY VALID VALUES ARE 15 or 30!!!
57
59#if TPS_READ_FREQUENCY==30
60#define TPS_READ_TIMER_BIT BIT_TIMER_30HZ
61#elif TPS_READ_FREQUENCY==15
62#define TPS_READ_TIMER_BIT BIT_TIMER_15HZ
63#else
64#error
65#endif
66
68#define CLT_READ_TIMER_BIT BIT_TIMER_4HZ
69
71#define IAT_READ_TIMER_BIT BIT_TIMER_4HZ
72
74#define O2_READ_TIMER_BIT BIT_TIMER_30HZ
75
77#define BAT_READ_TIMER_BIT BIT_TIMER_4HZ
78
80#define BARO_READ_TIMER_BIT BIT_TIMER_1HZ
81
83#define MAP_READ_TIMER_BIT BIT_TIMER_1KHZ
84
87
89void initialiseMAPBaro(void);
90void resetMAPcycleAndEvent(void);
91
93
96
99
103
104#endif // SENSORS_H
volatile unsigned int toothHistoryIndex
Current index to toothHistory array.
Definition globals.cpp:90
static TIntegral readSerialIntegralTimeout(void)
Reads an integral type, timing out if necessary.
Definition comms.cpp:173
void initialiseTPS(void)
Initial reading of the TPS sensor, primarily to detect flood clear state.
Definition sensors.cpp:596
uint8_t statusSensors
Definition sensors.cpp:31
uint32_t vssGetPulseGap(byte toothHistoryIndex)
Returns the VSS pulse gap for a given history point.
Definition sensors.cpp:805
void initialiseMAPBaro(void)
Initialize the MAP calculation & Baro values.
Definition sensors.cpp:668
void vssPulse(void)
The ISR function for VSS pulses.
Definition sensors.cpp:987
uint32_t getMAPDeltaTime(void)
Get the time in µS between the last 2 MAP readings.
Definition sensors.cpp:554
int16_t getMAPDelta(void)
Get the MAP change between the last 2 readings.
Definition sensors.cpp:549
uint16_t readAuxdigital(uint8_t digitalPin)
Definition sensors.cpp:1002
void readPolledSensors(byte loopTimer)
Read the sensors that are polled at every loop. This includes the TPS, MAP, CLT, IAT and O2 sensors.
Definition sensors.cpp:778
void resetMAPcycleAndEvent(void)
Definition sensors.cpp:690
table2D_u16_u8_32 o2CalibrationTable
void flexPulse(void)
Definition sensors.cpp:956
volatile byte flexCounter
Definition sensors.cpp:36
uint8_t getAnalogKnock(void)
Definition sensors.cpp:940
void knockPulse(void)
Definition sensors.cpp:974
void initialiseADC(void)
Definition sensors.cpp:149
table2D_u16_u16_32 iatCalibrationTable
volatile uint32_t flexPulseWidth
Definition sensors.cpp:38
void initialiseCLT(void)
Initial reading of the coolant sensor, primarily to make sure the priming pulsewidth is correct.
Definition sensors.cpp:606
uint16_t readAuxanalog(uint8_t analogPin)
Definition sensors.cpp:997
table2D_u16_u16_32 cltCalibrationTable
A 2D table.
Definition table2d.h:55