Speeduino
Loading...
Searching...
No Matches
globals.h
Go to the documentation of this file.
1
25#ifndef GLOBALS_H
26#define GLOBALS_H
27#include "table2d.h"
28#include "table3d.h"
29#include "statuses.h"
30#include "config_pages.h"
31#include "port_pin.h"
32#include "atomic.h"
33
34#define CRANK_ANGLE_MAX (max(CRANK_ANGLE_MAX_IGN, CRANK_ANGLE_MAX_INJ))
35
36#define MICROS_PER_SEC INT32_C(1000000)
37#define MICROS_PER_MIN INT32_C(MICROS_PER_SEC*60U)
38#define MICROS_PER_HOUR INT32_C(MICROS_PER_MIN*60U)
39
40#define UINT16_HALF_RANGE 0x8000
41
42#define SERIAL_PORT_PRIMARY 0
43#define SERIAL_PORT_SECONDARY 3
44
45#define BIT_TIMER_1HZ 0
46#define BIT_TIMER_4HZ 1
47#define BIT_TIMER_10HZ 2
48#define BIT_TIMER_15HZ 3
49#define BIT_TIMER_30HZ 4
50#define BIT_TIMER_50HZ 5
51#define BIT_TIMER_200HZ 6
52#define BIT_TIMER_1KHZ 7
53
54#ifndef UNIT_TEST
55#define TOOTH_LOG_SIZE 127U
56#else
57#define TOOTH_LOG_SIZE 1U
58#endif
59// Some code relies on TOOTH_LOG_SIZE being uint8_t.
60static_assert(TOOTH_LOG_SIZE<UINT8_MAX, "Check all uses of TOOTH_LOG_SIZE");
61
62#define O2_CALIBRATION_PAGE 2U
63#define IAT_CALIBRATION_PAGE 1U
64#define CLT_CALIBRATION_PAGE 0U
65
66// note the sequence of these defines which reference the bits used in a byte has moved when the third trigger & engine cycle was incorporated
67#define COMPOSITE_LOG_PRI 0
68#define COMPOSITE_LOG_SEC 1
69#define COMPOSITE_LOG_THIRD 2
70#define COMPOSITE_LOG_TRIG 3
71#define COMPOSITE_LOG_SYNC 4
72#define COMPOSITE_ENGINE_CYCLE 5
73
74#define OUTPUT_CONTROL_DIRECT 0
75#define OUTPUT_CONTROL_MC33810 10
76
77#define INJ1_CMD_BIT 0
78#define INJ2_CMD_BIT 1
79#define INJ3_CMD_BIT 2
80#define INJ4_CMD_BIT 3
81#define INJ5_CMD_BIT 4
82#define INJ6_CMD_BIT 5
83#define INJ7_CMD_BIT 6
84#define INJ8_CMD_BIT 7
85
86#define IGN1_CMD_BIT 0
87#define IGN2_CMD_BIT 1
88#define IGN3_CMD_BIT 2
89#define IGN4_CMD_BIT 3
90#define IGN5_CMD_BIT 4
91#define IGN6_CMD_BIT 5
92#define IGN7_CMD_BIT 6
93#define IGN8_CMD_BIT 7
94
95#define CALIBRATION_TABLE_SIZE 512
96
97#define OFFSET_FUELTRIM 127U
98#define OFFSET_IGNITION 40
99
100#define SERIAL_BUFFER_THRESHOLD 32
101
102#define LOGGER_CSV_SEPARATOR_SEMICOLON 0
103#define LOGGER_CSV_SEPARATOR_COMMA 1
104#define LOGGER_CSV_SEPARATOR_TAB 2
105#define LOGGER_CSV_SEPARATOR_SPACE 3
106
107#define LOGGER_DISABLED 0
108#define LOGGER_CSV 1
109#define LOGGER_BINARY 2
110
111#define LOGGER_RATE_1HZ 0
112#define LOGGER_RATE_4HZ 1
113#define LOGGER_RATE_10HZ 2
114#define LOGGER_RATE_30HZ 3
115
116#define LOGGER_FILENAMING_OVERWRITE 0
117#define LOGGER_FILENAMING_DATETIME 1
118#define LOGGER_FILENAMING_SEQENTIAL 2
119
120extern struct table3d16RpmLoad fuelTable; //16x16 fuel map
121extern struct table3d16RpmLoad fuelTable2; //16x16 fuel map
122extern struct table3d16RpmLoad ignitionTable; //16x16 ignition map
123extern struct table3d16RpmLoad ignitionTable2; //16x16 ignition map
124extern struct table3d16RpmLoad afrTable; //16x16 afr target map
125extern struct table3d8RpmLoad stagingTable; //8x8 fuel staging table
126extern struct table3d8RpmLoad boostTable; //8x8 boost map
127extern struct table3d8RpmLoad boostTableLookupDuty; //8x8 boost map
128extern struct table3d8RpmLoad vvtTable; //8x8 vvt map
129extern struct table3d8RpmLoad vvt2Table; //8x8 vvt map
130extern struct table3d8RpmLoad wmiTable; //8x8 wmi map
131
133
134extern trimTable3d trim1Table; //6x6 Fuel trim 1 map
135extern trimTable3d trim2Table; //6x6 Fuel trim 2 map
136extern trimTable3d trim3Table; //6x6 Fuel trim 3 map
137extern trimTable3d trim4Table; //6x6 Fuel trim 4 map
138extern trimTable3d trim5Table; //6x6 Fuel trim 5 map
139extern trimTable3d trim6Table; //6x6 Fuel trim 6 map
140extern trimTable3d trim7Table; //6x6 Fuel trim 7 map
141extern trimTable3d trim8Table; //6x6 Fuel trim 8 map
142
143extern struct table3d4RpmLoad dwellTable; //4x4 Dwell map
144
145//These are for the direct port manipulation of the injectors, coils and aux outputs
162
179
184
187
194
195extern byte triggerInterrupt;
196extern byte triggerInterrupt2;
197extern byte triggerInterrupt3;
198
199
200extern byte fpPrimeTime; //The time (in seconds, based on currentStatus.secl) that the fuel pump started priming
201extern uint8_t softLimitTime; //The time (in 0.1 seconds, based on seclx10) that the soft limiter started
202extern volatile uint16_t mainLoopCount;
203extern volatile unsigned long timer5_overflow_count; //Increments every time counter 5 overflows. Used for the fast version of micros()
204extern volatile unsigned long ms_counter; //A counter that increments once per ms
206extern volatile uint32_t toothHistory[TOOTH_LOG_SIZE];
208extern volatile unsigned int toothHistoryIndex;
209extern unsigned long currentLoopTime;
210extern volatile uint16_t ignitionCount;
211//The below shouldn't be needed and probably should be cleaned up, but the Atmel SAM (ARM) boards use a specific type for the trigger edge values rather than a simple byte/int
212#if defined(CORE_SAMD21)
216#else
217 extern byte primaryTriggerEdge;
218 extern byte secondaryTriggerEdge;
219 extern byte tertiaryTriggerEdge;
220#endif
221extern int CRANK_ANGLE_MAX_IGN;
222extern int CRANK_ANGLE_MAX_INJ;
223extern volatile uint32_t runSecsX10;
224extern volatile uint32_t seclx10;
225extern volatile byte HWTest_INJ;
226extern volatile byte HWTest_INJ_Pulsed;
227extern volatile byte HWTest_IGN;
228extern volatile byte HWTest_IGN_Pulsed;
229extern byte resetControl;
230extern volatile byte TIMER_mask;
231extern volatile byte LOOP_TIMER;
232
233extern byte pinInjector1; //Output pin injector 1
234extern byte pinInjector2; //Output pin injector 2
235extern byte pinInjector3; //Output pin injector 3
236extern byte pinInjector4; //Output pin injector 4
237extern byte pinInjector5; //Output pin injector 5
238extern byte pinInjector6; //Output pin injector 6
239extern byte pinInjector7; //Output pin injector 7
240extern byte pinInjector8; //Output pin injector 8
241extern byte injectorOutputControl; //Specifies whether the injectors are controlled directly (Via an IO pin) or using something like the MC33810
242extern byte pinCoil1; //Pin for coil 1
243extern byte pinCoil2; //Pin for coil 2
244extern byte pinCoil3; //Pin for coil 3
245extern byte pinCoil4; //Pin for coil 4
246extern byte pinCoil5; //Pin for coil 5
247extern byte pinCoil6; //Pin for coil 6
248extern byte pinCoil7; //Pin for coil 7
249extern byte pinCoil8; //Pin for coil 8
250extern byte ignitionOutputControl; //Specifies whether the coils are controlled directly (Via an IO pin) or using something like the MC33810
251extern byte pinTrigger; //The CAS pin
252extern byte pinTrigger2; //The Cam Sensor pin known as secondary input
253extern byte pinTrigger3; //the 2nd cam sensor pin known as tertiary input
254extern byte pinTPS;//TPS input pin
255extern byte pinMAP; //MAP sensor pin
256extern byte pinEMAP; //EMAP sensor pin
257extern byte pinMAP2; //2nd MAP sensor (Currently unused)
258extern byte pinIAT; //IAT sensor pin
259extern byte pinCLT; //CLS sensor pin
260extern byte pinO2; //O2 Sensor pin
261extern byte pinO2_2; //second O2 pin
262extern byte pinBat; //Battery voltage pin
263extern byte pinDisplayReset; // OLED reset pin
264extern byte pinTachOut; //Tacho output
265extern byte pinFuelPump; //Fuel pump on/off
266extern byte pinIdle1; //Single wire idle control
267extern byte pinIdle2; //2 wire idle control (Not currently used)
268extern byte pinIdleUp; //Input for triggering Idle Up
269extern byte pinIdleUpOutput; //Output that follows (normal or inverted) the idle up pin
270extern byte pinCTPS; //Input for triggering closed throttle state
271extern byte pinFuel2Input; //Input for switching to the 2nd fuel table
272extern byte pinSpark2Input; //Input for switching to the 2nd ignition table
273extern byte pinSpareTemp1; // Future use only
274extern byte pinSpareTemp2; // Future use only
275extern byte pinSpareOut1; //Generic output
276extern byte pinSpareOut2; //Generic output
277extern byte pinSpareOut3; //Generic output
278extern byte pinSpareOut4; //Generic output
279extern byte pinSpareOut5; //Generic output
280extern byte pinSpareOut6; //Generic output
281extern byte pinSpareHOut1; //spare high current output
282extern byte pinSpareHOut2; // spare high current output
283extern byte pinSpareLOut1; // spare low current output
284extern byte pinSpareLOut2; // spare low current output
285extern byte pinSpareLOut3;
286extern byte pinSpareLOut4;
287extern byte pinSpareLOut5;
288extern byte pinBoost;
289extern byte pinVVT_1; // vvt output 1
290extern byte pinVVT_2; // vvt output 2
291extern byte pinFan; // Cooling fan output
292extern byte pinStepperDir; //Direction pin for the stepper motor driver
293extern byte pinStepperStep; //Step pin for the stepper motor driver
294extern byte pinStepperEnable; //Turning the DRV8825 driver on/off
295extern byte pinLaunch;
296extern byte pinIgnBypass; //The pin used for an ignition bypass (Optional)
297extern byte pinFlex; //Pin with the flex sensor attached
298extern byte pinVSS;
299extern byte pinBaro; //Pin that an external barometric pressure sensor is attached to (If used)
300extern byte pinResetControl; // Output pin used control resetting the Arduino
301extern byte pinFuelPressure;
302extern byte pinOilPressure;
303extern byte pinWMIEmpty; // Water tank empty sensor
304extern byte pinWMIIndicator; // No water indicator bulb
305extern byte pinWMIEnabled; // ON-OFF output to relay/pump/solenoid
306extern byte pinMC33810_1_CS;
307extern byte pinMC33810_2_CS;
308extern byte pinSDEnable; //Input for manually enabling SD logging
309#ifdef USE_SPI_EEPROM
310 extern byte pinSPIFlash_CS;
311#endif
312extern byte pinAirConComp; // Air conditioning compressor output
313extern byte pinAirConFan; // Stand-alone air conditioning fan output
314extern byte pinAirConRequest; // Air conditioning request input
315
316/* global variables */ // from speeduino.ino
317//#ifndef UNIT_TEST
318
319//#endif
320
321extern struct statuses currentStatus; //The global status object
322extern struct config2 configPage2;
323extern struct config4 configPage4;
324extern struct config6 configPage6;
325extern struct config9 configPage9;
326extern struct config10 configPage10;
327extern struct config13 configPage13;
328extern struct config15 configPage15;
329
330bool pinIsOutput(byte pin);
331bool pinIsUsed(byte pin);
332
333#endif // GLOBALS_H
The tune page structs and related defines.
byte pinTrigger3
the 2nd cam sensor pin
Definition globals.cpp:140
pin_mask_t pump_pin_mask
Definition globals.cpp:67
byte pinStepperEnable
Definition globals.cpp:181
volatile uint16_t ignitionCount
Definition globals.cpp:92
byte pinMC33810_2_CS
Definition globals.cpp:194
int CRANK_ANGLE_MAX_IGN
Definition globals.cpp:102
port_register_t flex_pin_port
Definition globals.cpp:69
int CRANK_ANGLE_MAX_INJ
The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequ...
Definition globals.cpp:103
byte pinVSS
Definition globals.cpp:185
byte pinSpareLOut4
Definition globals.cpp:173
byte triggerInterrupt
byte pinSpareLOut2
Definition globals.cpp:171
byte pinFuelPump
Definition globals.cpp:152
pin_mask_t ign7_pin_mask
Definition globals.cpp:60
table3d6RpmLoad trimTable3d
Definition globals.h:132
byte pinSpareOut6
Definition globals.cpp:167
byte pinCoil4
Pin for coil 4.
Definition globals.cpp:131
port_register_t ign3_pin_port
Definition globals.cpp:51
struct table3d8RpmLoad stagingTable
8x8 fuel staging table
Definition globals.cpp:12
byte pinTrigger2
RPM2 (Typically the Cam Sensor) pin.
Definition globals.cpp:139
byte pinTPS
Definition globals.cpp:141
byte injectorOutputControl
Definition globals.cpp:126
struct statuses currentStatus
Definition auxiliaries.cpp:81
trimTable3d trim5Table
6x6 Fuel trim 5 map
Definition globals.cpp:22
byte pinFan
Cooling fan output (on/off? See: auxiliaries.ino)
Definition globals.cpp:178
volatile byte TIMER_mask
Definition globals.cpp:114
port_register_t tach_pin_port
Definition globals.cpp:64
trimTable3d trim3Table
6x6 Fuel trim 3 map
Definition globals.cpp:20
byte pinBat
Definition globals.cpp:149
pin_mask_t ign4_pin_mask
Definition globals.cpp:54
volatile uint32_t seclx10
Definition globals.cpp:105
byte pinTachOut
Definition globals.cpp:151
byte pinO2_2
Definition globals.cpp:148
byte pinVVT_2
vvt (variable valve timing) output 2
Definition globals.cpp:177
struct table3d8RpmLoad vvt2Table
8x8 vvt2 map
Definition globals.cpp:16
port_register_t inj3_pin_port
Definition globals.cpp:34
pin_mask_t ign3_pin_mask
Definition globals.cpp:52
volatile unsigned int toothHistoryIndex
Current index to toothHistory array.
Definition globals.cpp:90
trimTable3d trim4Table
6x6 Fuel trim 4 map
Definition globals.cpp:21
byte pinAirConComp
Definition globals.cpp:199
pin_mask_t inj5_pin_mask
Definition globals.cpp:39
unsigned long currentLoopTime
Definition globals.cpp:91
byte ignitionOutputControl
Definition globals.cpp:136
byte pinAirConFan
Definition globals.cpp:200
volatile uint32_t runSecsX10
Definition globals.cpp:104
#define TOOTH_LOG_SIZE
Definition globals.h:55
pin_mask_t inj2_pin_mask
Definition globals.cpp:33
uint16_t fixedCrankingOverride
Definition globals.cpp:85
struct table3d16RpmLoad afrTable
16x16 afr target map
Definition globals.cpp:11
port_register_t triggerSec_pin_port
Definition globals.cpp:74
port_register_t inj2_pin_port
Definition globals.cpp:32
port_register_t ign8_pin_port
Definition globals.cpp:61
port_register_t triggerPri_pin_port
Definition globals.cpp:72
byte pinInjector3
Output pin injector 3.
Definition globals.cpp:120
port_register_t inj8_pin_port
Definition globals.cpp:44
port_register_t pump_pin_port
Definition globals.cpp:66
byte triggerInterrupt2
byte pinInjector2
Output pin injector 2.
Definition globals.cpp:119
volatile byte HWTest_IGN_Pulsed
Definition globals.cpp:109
byte fpPrimeTime
The time (in seconds, based on statuses::secl) that the fuel pump started priming.
Definition globals.cpp:80
struct table3d16RpmLoad ignitionTable2
16x16 ignition map
Definition globals.cpp:10
byte pinCTPS
Definition globals.cpp:157
byte pinMAP
Definition globals.cpp:142
byte pinCoil5
Pin for coil 5.
Definition globals.cpp:132
bool pinIsOutput(byte pin)
Definition globals.cpp:213
byte pinWMIEnabled
Definition globals.cpp:192
byte pinResetControl
Definition globals.cpp:187
byte secondaryTriggerEdge
Definition globals.cpp:99
byte pinSpareOut5
Definition globals.cpp:166
byte pinBoost
Definition globals.cpp:175
byte resetControl
resetControl needs to be here (as global) because using the config page (4) directly can prevent burn...
Definition globals.cpp:112
byte pinIdleUp
Definition globals.cpp:155
pin_mask_t ign1_pin_mask
Definition globals.cpp:48
byte pinIgnBypass
Definition globals.cpp:183
byte pinSpareTemp2
Definition globals.cpp:161
byte pinSpareOut3
Definition globals.cpp:164
byte pinCoil3
Pin for coil 3.
Definition globals.cpp:130
volatile byte HWTest_INJ
Definition globals.cpp:106
byte pinBaro
Definition globals.cpp:186
byte pinCoil8
Pin for coil 8.
Definition globals.cpp:135
port_register_t inj6_pin_port
Definition globals.cpp:40
port_register_t inj1_pin_port
volatile inj*_pin_port and inj*_pin_mask vars are for the direct port manipulation of the injectors,...
Definition globals.cpp:30
byte pinCLT
Definition globals.cpp:146
struct table3d16RpmLoad fuelTable2
16x16 fuel map
Definition globals.cpp:8
byte pinLaunch
Definition globals.cpp:182
port_register_t ign1_pin_port
Definition globals.cpp:47
trimTable3d trim6Table
6x6 Fuel trim 6 map
Definition globals.cpp:23
byte pinEMAP
Definition globals.cpp:143
byte pinO2
Definition globals.cpp:147
pin_mask_t inj6_pin_mask
Definition globals.cpp:41
byte pinTrigger
RPM1 (Typically CAS=crankshaft angle sensor) pin.
Definition globals.cpp:138
byte pinInjector6
Output pin injector 6.
Definition globals.cpp:123
byte pinStepperDir
Definition globals.cpp:179
pin_mask_t tach_pin_mask
Definition globals.cpp:65
pin_mask_t ign2_pin_mask
Definition globals.cpp:50
byte pinSpareTemp1
Definition globals.cpp:160
byte pinSpark2Input
Definition globals.cpp:159
byte pinFlex
Definition globals.cpp:184
byte pinCoil1
Pin for coil 1.
Definition globals.cpp:128
byte pinIAT
Definition globals.cpp:145
byte pinWMIEmpty
Definition globals.cpp:190
byte pinSpareHOut2
Definition globals.cpp:169
struct config15 configPage15
Definition globals.cpp:210
struct table3d8RpmLoad wmiTable
8x8 wmi map
Definition globals.cpp:17
byte pinInjector1
Various pin numbering (Injectors, Ign outputs, CAS, Cam, Sensors. etc.) assignments.
Definition globals.cpp:118
struct config10 configPage10
Definition corrections.cpp:64
pin_mask_t ign5_pin_mask
Definition globals.cpp:56
volatile byte LOOP_TIMER
Definition globals.cpp:115
byte pinWMIIndicator
Definition globals.cpp:191
pin_mask_t ign6_pin_mask
Definition globals.cpp:58
byte pinSpareLOut1
Definition globals.cpp:170
port_register_t ign5_pin_port
Definition globals.cpp:55
byte pinInjector5
Output pin injector 5.
Definition globals.cpp:122
byte pinStepperStep
Definition globals.cpp:180
port_register_t triggerThird_pin_port
Definition globals.cpp:76
pin_mask_t triggerPri_pin_mask
Definition globals.cpp:73
volatile unsigned long timer5_overflow_count
Definition globals.cpp:83
trimTable3d trim7Table
6x6 Fuel trim 7 map
Definition globals.cpp:24
byte pinSpareLOut5
Definition globals.cpp:174
byte pinSpareOut4
Definition globals.cpp:165
byte pinIdle1
Definition globals.cpp:153
volatile byte HWTest_IGN
Definition globals.cpp:108
struct table3d4RpmLoad dwellTable
4x4 Dwell map
Definition globals.cpp:26
byte pinDisplayReset
Definition globals.cpp:150
port_register_t inj7_pin_port
Definition globals.cpp:42
port_register_t inj4_pin_port
Definition globals.cpp:36
port_register_t inj5_pin_port
Definition globals.cpp:38
byte pinVVT_1
vvt (variable valve timing) output 1
Definition globals.cpp:176
struct table3d8RpmLoad boostTable
8x8 boost map
Definition globals.cpp:13
struct config9 configPage9
Definition globals.cpp:207
pin_mask_t inj4_pin_mask
Definition globals.cpp:37
pin_mask_t inj3_pin_mask
Definition globals.cpp:35
uint8_t softLimitTime
Definition globals.cpp:81
byte pinIdle2
Definition globals.cpp:154
struct table3d16RpmLoad fuelTable
16x16 fuel map
Definition globals.cpp:7
pin_mask_t triggerThird_pin_mask
Definition globals.cpp:77
port_register_t ign2_pin_port
Definition globals.cpp:49
pin_mask_t inj8_pin_mask
Definition globals.cpp:45
byte triggerInterrupt3
byte pinSpareOut1
Definition globals.cpp:162
volatile byte HWTest_INJ_Pulsed
Definition globals.cpp:107
pin_mask_t inj7_pin_mask
Definition globals.cpp:43
pin_mask_t inj1_pin_mask
Definition globals.cpp:31
byte pinCoil6
Pin for coil 6.
Definition globals.cpp:133
volatile uint8_t compositeLogHistory[TOOTH_LOG_SIZE]
Definition globals.cpp:89
byte pinInjector8
Output pin injector 8.
Definition globals.cpp:125
byte pinInjector7
Output pin injector 7.
Definition globals.cpp:124
pin_mask_t ign8_pin_mask
Definition globals.cpp:62
byte pinAirConRequest
Definition globals.cpp:201
pin_mask_t triggerSec_pin_mask
Definition globals.cpp:75
struct config13 configPage13
Definition globals.cpp:209
byte pinSpareLOut3
Definition globals.cpp:172
volatile unsigned long ms_counter
Definition globals.cpp:84
byte primaryTriggerEdge
Definition globals.cpp:98
struct config6 configPage6
Definition corrections.cpp:65
volatile uint16_t mainLoopCount
Definition globals.cpp:82
byte pinMAP2
Definition globals.cpp:144
byte pinSpareOut2
Definition globals.cpp:163
port_register_t ign4_pin_port
Definition globals.cpp:53
pin_mask_t flex_pin_mask
Definition globals.cpp:70
struct config2 configPage2
Definition corrections.cpp:62
byte pinMC33810_1_CS
Definition globals.cpp:193
struct table3d8RpmLoad boostTableLookupDuty
8x8 boost map lookup table
Definition globals.cpp:14
byte pinFuel2Input
Definition globals.cpp:158
byte pinFuelPressure
Definition globals.cpp:188
byte pinSDEnable
Definition globals.cpp:195
volatile uint32_t toothHistory[TOOTH_LOG_SIZE]
Tooth trigger history - delta time (in uS) from last tooth (Indexed by toothHistoryIndex)
Definition globals.cpp:88
bool pinIsUsed(byte pin)
Definition globals.cpp:268
trimTable3d trim2Table
6x6 Fuel trim 2 map
Definition globals.cpp:19
struct config4 configPage4
Definition corrections.cpp:59
byte tertiaryTriggerEdge
Definition globals.cpp:100
byte pinCoil2
Pin for coil 2.
Definition globals.cpp:129
byte pinSpareHOut1
Definition globals.cpp:168
byte pinOilPressure
Definition globals.cpp:189
byte pinIdleUpOutput
Definition globals.cpp:156
byte pinInjector4
Output pin injector 4.
Definition globals.cpp:121
struct table3d16RpmLoad ignitionTable
16x16 ignition map
Definition globals.cpp:9
byte pinCoil7
Pin for coil 7.
Definition globals.cpp:134
trimTable3d trim1Table
6x6 Fuel trim 1 map
Definition globals.cpp:18
port_register_t ign7_pin_port
Definition globals.cpp:59
port_register_t ign6_pin_port
Definition globals.cpp:57
trimTable3d trim8Table
6x6 Fuel trim 8 map
Definition globals.cpp:25
struct table3d8RpmLoad vvtTable
8x8 vvt map
Definition globals.cpp:15
static TIntegral readSerialIntegralTimeout(void)
Reads an integral type, timing out if necessary.
Definition comms.cpp:173
decltype(type_detection_detail::return_type_of(&type_detection_detail::detectDigitalPinToBitMask)) pin_mask_t
The return type of a "call" to digitalPinToBitMask()
Definition port_pin.h:22
decltype(type_detection_detail::return_type_of(&type_detection_detail::detectPortRegisterType)) port_register_t
The return type of a "call" to portOutputRegister()
Definition port_pin.h:19
The statuses struct and related defines.
Definition config_pages.h:634
Definition config_pages.h:828
Definition config_pages.h:881
Definition config_pages.h:171
Definition config_pages.h:347
Definition config_pages.h:450
Definition config_pages.h:552
The status struct with current values for all 'live' variables.
Definition statuses.h:23
3D table data types and functions