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 50
9#define ADCFILTER_CLT_DEFAULT 180
10#define ADCFILTER_IAT_DEFAULT 180
11#define ADCFILTER_O2_DEFAULT 128
12#define ADCFILTER_BAT_DEFAULT 128
13#define ADCFILTER_MAP_DEFAULT 20 //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response
14#define ADCFILTER_BARO_DEFAULT 64
15
16#define ADCFILTER_PSI_DEFAULT 150 //not currently configurable at runtime, used for misc pressure sensors, oil, fuel, etc.
17
18#define FILTER_FLEX_DEFAULT 75
19
20#define BARO_MIN 65
21#define BARO_MAX 108
22
23#define VSS_GEAR_HYSTERESIS 10
24#define VSS_SAMPLES 4 //Must be a power of 2 and smaller than 255
25
26#define TPS_READ_FREQUENCY 30 //ONLY VALID VALUES ARE 15 or 30!!!
27
28extern volatile byte flexCounter;
29extern volatile unsigned long flexStartTime;
30extern volatile unsigned long flexPulseWidth;
31
32#if defined(CORE_AVR)
33 #define READ_FLEX() ((*flex_pin_port & flex_pin_mask) ? true : false)
34#else
35 #define READ_FLEX() digitalRead(pinFlex)
36#endif
37
38#define ADMUX_DEFAULT_CONFIG 0x40 //AVCC reference, ADC0 input, right adjusted, ADC enabled
39
40extern unsigned int MAPcount; //Number of samples taken in the current MAP cycle
41extern uint32_t MAPcurRev; //Tracks which revolution we're sampling on
42extern bool auxIsEnabled;
43extern uint16_t MAPlast;
44extern unsigned long MAP_time; //The time the MAP sample was taken
45extern unsigned long MAPlast_time; //The time the previous MAP sample was taken
46
52#define ADC_FILTER(input, alpha, prior) (((long)input * (256 - alpha) + ((long)prior * alpha))) >> 8
53
54void initialiseADC(void);
55void readTPS(bool useFilter=true); //Allows the option to override the use of the filter
56void readO2_2(void);
57void flexPulse(void);
58void knockPulse(void);
60void vssPulse(void);
61uint16_t getSpeed(void);
62byte getGear(void);
63byte getFuelPressure(void);
64byte getOilPressure(void);
67void readCLT(bool useFilter=true); //Allows the option to override the use of the filter
68void readIAT(void);
69void readO2(void);
70void readBat(void);
71void readBaro(void);
72void readMAP(void);
75
76#endif // SENSORS_H
volatile unsigned int toothHistoryIndex
Current index to toothHistory array.
Definition globals.cpp:124
static uint32_t rshift(uint32_t a)
Bitwise right shift - generic, unoptimized, case.
Definition bit_shifts.h:349
byte getFuelPressure(void)
Definition sensors.cpp:757
byte getOilPressure(void)
Definition sensors.cpp:782
void readTPS(bool useFilter=true)
Definition sensors.cpp:467
void readMAP(void)
Definition sensors.cpp:269
volatile unsigned long flexStartTime
Definition sensors.cpp:36
void readBaro(void)
Definition sensors.cpp:542
byte getGear(void)
Definition sensors.cpp:736
uint32_t vssGetPulseGap(byte toothHistoryIndex)
Returns the VSS pulse gap for a given history point.
Definition sensors.cpp:678
uint32_t MAPcurRev
Definition sensors.cpp:24
unsigned int MAPcount
Definition sensors.cpp:25
void vssPulse(void)
The ISR function for VSS pulses.
Definition sensors.cpp:866
void readIAT(void)
Definition sensors.cpp:529
uint16_t readAuxdigital(uint8_t digitalPin)
Definition sensors.cpp:888
void readO2_2(void)
Definition sensors.cpp:618
unsigned long MAP_time
Definition sensors.cpp:30
uint16_t MAPlast
Definition sensors.cpp:29
void readBat(void)
Definition sensors.cpp:634
void readO2(void)
Definition sensors.cpp:593
volatile unsigned long flexPulseWidth
Definition sensors.cpp:37
void flexPulse(void)
Definition sensors.cpp:835
volatile byte flexCounter
Definition sensors.cpp:35
uint8_t getAnalogKnock(void)
Definition sensors.cpp:809
void knockPulse(void)
Definition sensors.cpp:853
uint16_t getSpeed(void)
Definition sensors.cpp:693
void initialiseADC(void)
Definition sensors.cpp:83
void instanteneousMAPReading(void)
Definition sensors.cpp:221
void readCLT(bool useFilter=true)
Definition sensors.cpp:512
bool auxIsEnabled
Definition sensors.cpp:28
unsigned long MAPlast_time
Definition sensors.cpp:31
uint16_t readAuxanalog(uint8_t analogPin)
Definition sensors.cpp:875