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 <Arduino.h>
28#include "table2d.h"
29#include "table3d.h"
30#include "statuses.h"
31#include "config_pages.h"
32
33#if __has_include(<SimplyAtomic.h>)
34 #include <SimplyAtomic.h>
35#else
36 //Fallback for Arduino IDE when SimplyAtomic is not installed. Only works for AVR
37 #include <util/atomic.h>
38 #define ATOMIC() ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
39 #warning It is strongly recommended to install the SimplyAtomic library rather than relying on the built-in ATOMIC
40#endif
41
42#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)
43 #define BOARD_MAX_DIGITAL_PINS 54 //digital pins +1
44 #define BOARD_MAX_IO_PINS 70 //digital pins + analog channels + 1
45 #define BOARD_MAX_ADC_PINS 15 //Number of analog pins
46 #ifndef LED_BUILTIN
47 #define LED_BUILTIN 13
48 #endif
49 #define CORE_AVR
50 #define BOARD_H "board_avr2560.h"
51 #ifndef INJ_CHANNELS
52 #define INJ_CHANNELS 4
53 #endif
54 #ifndef IGN_CHANNELS
55 #define IGN_CHANNELS 5
56 #endif
57
58#elif defined(CORE_TEENSY)
59 #if defined(__MK64FX512__) || defined(__MK66FX1M0__)
60 #define CORE_TEENSY35
61 #define BOARD_H "board_teensy35.h"
62 #elif defined(__IMXRT1062__)
63 #define CORE_TEENSY41
64 #define BOARD_H "board_teensy41.h"
65 #endif
66 #define INJ_CHANNELS 8
67 #define IGN_CHANNELS 8
68
69#elif defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) || defined(STM32)
70 #define BOARD_H "board_stm32_official.h"
71 #define CORE_STM32
72
73 #define BOARD_MAX_ADC_PINS NUM_ANALOG_INPUTS-1 //Number of analog pins from core.
74 #if defined(STM32F407xx) //F407 can do 8x8 STM32F401/STM32F411 don't
75 #define INJ_CHANNELS 8
76 #define IGN_CHANNELS 8
77 #else
78 #define INJ_CHANNELS 4
79 #define IGN_CHANNELS 5
80 #endif
81#elif defined(__SAMD21G18A__)
82 #define BOARD_H "board_samd21.h"
83 #define CORE_SAMD21
84 #define CORE_SAM
85 #define INJ_CHANNELS 4
86 #define IGN_CHANNELS 4
87#elif defined(__SAMC21J18A__)
88 #define BOARD_H "board_samc21.h"
89 #define CORE_SAMC21
90 #define CORE_SAM
91#elif defined(__SAME51J19A__)
92 #define BOARD_H "board_same51.h"
93 #define CORE_SAME51
94 #define CORE_SAM
95 #define INJ_CHANNELS 8
96 #define IGN_CHANNELS 8
97#else
98 #error Incorrect board selected. Please select the correct board (Usually Mega 2560) and upload again
99#endif
100
101//This can only be included after the above section
102#include BOARD_H //Note that this is not a real file, it is defined in globals.h.
103
104#define CRANK_ANGLE_MAX (max(CRANK_ANGLE_MAX_IGN, CRANK_ANGLE_MAX_INJ))
105
106#define interruptSafe(c) (noInterrupts(); {c} interrupts();) //Wraps any code between nointerrupt and interrupt calls
107
108#define MICROS_PER_SEC INT32_C(1000000)
109#define MICROS_PER_MIN INT32_C(MICROS_PER_SEC*60U)
110#define MICROS_PER_HOUR INT32_C(MICROS_PER_MIN*60U)
111
112#define SERIAL_PORT_PRIMARY 0
113#define SERIAL_PORT_SECONDARY 3
114
115#define BIT_TIMER_1HZ 0
116#define BIT_TIMER_4HZ 1
117#define BIT_TIMER_10HZ 2
118#define BIT_TIMER_15HZ 3
119#define BIT_TIMER_30HZ 4
120#define BIT_TIMER_50HZ 5
121#define BIT_TIMER_200HZ 6
122#define BIT_TIMER_1KHZ 7
123
124#ifndef UNIT_TEST
125#define TOOTH_LOG_SIZE 127U
126#else
127#define TOOTH_LOG_SIZE 1U
128#endif
129// Some code relies on TOOTH_LOG_SIZE being uint8_t.
130static_assert(TOOTH_LOG_SIZE<UINT8_MAX, "Check all uses of TOOTH_LOG_SIZE");
131
132#define O2_CALIBRATION_PAGE 2U
133#define IAT_CALIBRATION_PAGE 1U
134#define CLT_CALIBRATION_PAGE 0U
135
136// note the sequence of these defines which reference the bits used in a byte has moved when the third trigger & engine cycle was incorporated
137#define COMPOSITE_LOG_PRI 0
138#define COMPOSITE_LOG_SEC 1
139#define COMPOSITE_LOG_THIRD 2
140#define COMPOSITE_LOG_TRIG 3
141#define COMPOSITE_LOG_SYNC 4
142#define COMPOSITE_ENGINE_CYCLE 5
143
144#define OUTPUT_CONTROL_DIRECT 0
145#define OUTPUT_CONTROL_MC33810 10
146
147#define INJ1_CMD_BIT 0
148#define INJ2_CMD_BIT 1
149#define INJ3_CMD_BIT 2
150#define INJ4_CMD_BIT 3
151#define INJ5_CMD_BIT 4
152#define INJ6_CMD_BIT 5
153#define INJ7_CMD_BIT 6
154#define INJ8_CMD_BIT 7
155
156#define IGN1_CMD_BIT 0
157#define IGN2_CMD_BIT 1
158#define IGN3_CMD_BIT 2
159#define IGN4_CMD_BIT 3
160#define IGN5_CMD_BIT 4
161#define IGN6_CMD_BIT 5
162#define IGN7_CMD_BIT 6
163#define IGN8_CMD_BIT 7
164
165#define CALIBRATION_TABLE_SIZE 512
166
167#define OFFSET_FUELTRIM 127U
168#define OFFSET_IGNITION 40
169
170#define SERIAL_BUFFER_THRESHOLD 32
171
172#define LOGGER_CSV_SEPARATOR_SEMICOLON 0
173#define LOGGER_CSV_SEPARATOR_COMMA 1
174#define LOGGER_CSV_SEPARATOR_TAB 2
175#define LOGGER_CSV_SEPARATOR_SPACE 3
176
177#define LOGGER_DISABLED 0
178#define LOGGER_CSV 1
179#define LOGGER_BINARY 2
180
181#define LOGGER_RATE_1HZ 0
182#define LOGGER_RATE_4HZ 1
183#define LOGGER_RATE_10HZ 2
184#define LOGGER_RATE_30HZ 3
185
186#define LOGGER_FILENAMING_OVERWRITE 0
187#define LOGGER_FILENAMING_DATETIME 1
188#define LOGGER_FILENAMING_SEQENTIAL 2
189
190extern struct table3d16RpmLoad fuelTable; //16x16 fuel map
191extern struct table3d16RpmLoad fuelTable2; //16x16 fuel map
192extern struct table3d16RpmLoad ignitionTable; //16x16 ignition map
193extern struct table3d16RpmLoad ignitionTable2; //16x16 ignition map
194extern struct table3d16RpmLoad afrTable; //16x16 afr target map
195extern struct table3d8RpmLoad stagingTable; //8x8 fuel staging table
196extern struct table3d8RpmLoad boostTable; //8x8 boost map
197extern struct table3d8RpmLoad boostTableLookupDuty; //8x8 boost map
198extern struct table3d8RpmLoad vvtTable; //8x8 vvt map
199extern struct table3d8RpmLoad vvt2Table; //8x8 vvt map
200extern struct table3d8RpmLoad wmiTable; //8x8 wmi map
201
203
204extern trimTable3d trim1Table; //6x6 Fuel trim 1 map
205extern trimTable3d trim2Table; //6x6 Fuel trim 2 map
206extern trimTable3d trim3Table; //6x6 Fuel trim 3 map
207extern trimTable3d trim4Table; //6x6 Fuel trim 4 map
208extern trimTable3d trim5Table; //6x6 Fuel trim 5 map
209extern trimTable3d trim6Table; //6x6 Fuel trim 6 map
210extern trimTable3d trim7Table; //6x6 Fuel trim 7 map
211extern trimTable3d trim8Table; //6x6 Fuel trim 8 map
212
213extern struct table3d4RpmLoad dwellTable; //4x4 Dwell map
214
215//These are for the direct port manipulation of the injectors, coils and aux outputs
216extern volatile PORT_TYPE *inj1_pin_port;
217extern volatile PINMASK_TYPE inj1_pin_mask;
218extern volatile PORT_TYPE *inj2_pin_port;
219extern volatile PINMASK_TYPE inj2_pin_mask;
220extern volatile PORT_TYPE *inj3_pin_port;
221extern volatile PINMASK_TYPE inj3_pin_mask;
222extern volatile PORT_TYPE *inj4_pin_port;
223extern volatile PINMASK_TYPE inj4_pin_mask;
224extern volatile PORT_TYPE *inj5_pin_port;
225extern volatile PINMASK_TYPE inj5_pin_mask;
226extern volatile PORT_TYPE *inj6_pin_port;
227extern volatile PINMASK_TYPE inj6_pin_mask;
228extern volatile PORT_TYPE *inj7_pin_port;
229extern volatile PINMASK_TYPE inj7_pin_mask;
230extern volatile PORT_TYPE *inj8_pin_port;
231extern volatile PINMASK_TYPE inj8_pin_mask;
232
233extern volatile PORT_TYPE *ign1_pin_port;
234extern volatile PINMASK_TYPE ign1_pin_mask;
235extern volatile PORT_TYPE *ign2_pin_port;
236extern volatile PINMASK_TYPE ign2_pin_mask;
237extern volatile PORT_TYPE *ign3_pin_port;
238extern volatile PINMASK_TYPE ign3_pin_mask;
239extern volatile PORT_TYPE *ign4_pin_port;
240extern volatile PINMASK_TYPE ign4_pin_mask;
241extern volatile PORT_TYPE *ign5_pin_port;
242extern volatile PINMASK_TYPE ign5_pin_mask;
243extern volatile PORT_TYPE *ign6_pin_port;
244extern volatile PINMASK_TYPE ign6_pin_mask;
245extern volatile PORT_TYPE *ign7_pin_port;
246extern volatile PINMASK_TYPE ign7_pin_mask;
247extern volatile PORT_TYPE *ign8_pin_port;
248extern volatile PINMASK_TYPE ign8_pin_mask;
249
250extern volatile PORT_TYPE *tach_pin_port;
251extern volatile PINMASK_TYPE tach_pin_mask;
252extern volatile PORT_TYPE *pump_pin_port;
253extern volatile PINMASK_TYPE pump_pin_mask;
254
255extern volatile PORT_TYPE *flex_pin_port;
256extern volatile PINMASK_TYPE flex_pin_mask;
257
258extern volatile PORT_TYPE *triggerPri_pin_port;
259extern volatile PINMASK_TYPE triggerPri_pin_mask;
260extern volatile PORT_TYPE *triggerSec_pin_port;
261extern volatile PINMASK_TYPE triggerSec_pin_mask;
262extern volatile PORT_TYPE *triggerThird_pin_port;
263extern volatile PINMASK_TYPE triggerThird_pin_mask;
264
265extern byte triggerInterrupt;
266extern byte triggerInterrupt2;
267extern byte triggerInterrupt3;
268
269
270extern byte fpPrimeTime; //The time (in seconds, based on currentStatus.secl) that the fuel pump started priming
271extern uint8_t softLimitTime; //The time (in 0.1 seconds, based on seclx10) that the soft limiter started
272extern volatile uint16_t mainLoopCount;
273extern uint32_t revolutionTime; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that)
274extern volatile unsigned long timer5_overflow_count; //Increments every time counter 5 overflows. Used for the fast version of micros()
275extern volatile unsigned long ms_counter; //A counter that increments once per ms
277extern volatile uint32_t toothHistory[TOOTH_LOG_SIZE];
279extern volatile unsigned int toothHistoryIndex;
280extern unsigned long currentLoopTime;
281extern volatile uint16_t ignitionCount;
282//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
283#if defined(CORE_SAMD21)
287#else
288 extern byte primaryTriggerEdge;
289 extern byte secondaryTriggerEdge;
290 extern byte tertiaryTriggerEdge;
291#endif
292extern int CRANK_ANGLE_MAX_IGN;
293extern int CRANK_ANGLE_MAX_INJ;
294extern volatile uint32_t runSecsX10;
295extern volatile uint32_t seclx10;
296extern volatile byte HWTest_INJ;
297extern volatile byte HWTest_INJ_Pulsed;
298extern volatile byte HWTest_IGN;
299extern volatile byte HWTest_IGN_Pulsed;
300extern byte maxIgnOutputs;
301extern byte maxInjOutputs;
302extern byte resetControl;
303extern volatile byte TIMER_mask;
304extern volatile byte LOOP_TIMER;
305
306extern byte pinInjector1; //Output pin injector 1
307extern byte pinInjector2; //Output pin injector 2
308extern byte pinInjector3; //Output pin injector 3
309extern byte pinInjector4; //Output pin injector 4
310extern byte pinInjector5; //Output pin injector 5
311extern byte pinInjector6; //Output pin injector 6
312extern byte pinInjector7; //Output pin injector 7
313extern byte pinInjector8; //Output pin injector 8
314extern byte injectorOutputControl; //Specifies whether the injectors are controlled directly (Via an IO pin) or using something like the MC33810
315extern byte pinCoil1; //Pin for coil 1
316extern byte pinCoil2; //Pin for coil 2
317extern byte pinCoil3; //Pin for coil 3
318extern byte pinCoil4; //Pin for coil 4
319extern byte pinCoil5; //Pin for coil 5
320extern byte pinCoil6; //Pin for coil 6
321extern byte pinCoil7; //Pin for coil 7
322extern byte pinCoil8; //Pin for coil 8
323extern byte ignitionOutputControl; //Specifies whether the coils are controlled directly (Via an IO pin) or using something like the MC33810
324extern byte pinTrigger; //The CAS pin
325extern byte pinTrigger2; //The Cam Sensor pin known as secondary input
326extern byte pinTrigger3; //the 2nd cam sensor pin known as tertiary input
327extern byte pinTPS;//TPS input pin
328extern byte pinMAP; //MAP sensor pin
329extern byte pinEMAP; //EMAP sensor pin
330extern byte pinMAP2; //2nd MAP sensor (Currently unused)
331extern byte pinIAT; //IAT sensor pin
332extern byte pinCLT; //CLS sensor pin
333extern byte pinO2; //O2 Sensor pin
334extern byte pinO2_2; //second O2 pin
335extern byte pinBat; //Battery voltage pin
336extern byte pinDisplayReset; // OLED reset pin
337extern byte pinTachOut; //Tacho output
338extern byte pinFuelPump; //Fuel pump on/off
339extern byte pinIdle1; //Single wire idle control
340extern byte pinIdle2; //2 wire idle control (Not currently used)
341extern byte pinIdleUp; //Input for triggering Idle Up
342extern byte pinIdleUpOutput; //Output that follows (normal or inverted) the idle up pin
343extern byte pinCTPS; //Input for triggering closed throttle state
344extern byte pinFuel2Input; //Input for switching to the 2nd fuel table
345extern byte pinSpark2Input; //Input for switching to the 2nd ignition table
346extern byte pinSpareTemp1; // Future use only
347extern byte pinSpareTemp2; // Future use only
348extern byte pinSpareOut1; //Generic output
349extern byte pinSpareOut2; //Generic output
350extern byte pinSpareOut3; //Generic output
351extern byte pinSpareOut4; //Generic output
352extern byte pinSpareOut5; //Generic output
353extern byte pinSpareOut6; //Generic output
354extern byte pinSpareHOut1; //spare high current output
355extern byte pinSpareHOut2; // spare high current output
356extern byte pinSpareLOut1; // spare low current output
357extern byte pinSpareLOut2; // spare low current output
358extern byte pinSpareLOut3;
359extern byte pinSpareLOut4;
360extern byte pinSpareLOut5;
361extern byte pinBoost;
362extern byte pinVVT_1; // vvt output 1
363extern byte pinVVT_2; // vvt output 2
364extern byte pinFan; // Cooling fan output
365extern byte pinStepperDir; //Direction pin for the stepper motor driver
366extern byte pinStepperStep; //Step pin for the stepper motor driver
367extern byte pinStepperEnable; //Turning the DRV8825 driver on/off
368extern byte pinLaunch;
369extern byte pinIgnBypass; //The pin used for an ignition bypass (Optional)
370extern byte pinFlex; //Pin with the flex sensor attached
371extern byte pinVSS;
372extern byte pinBaro; //Pin that an external barometric pressure sensor is attached to (If used)
373extern byte pinResetControl; // Output pin used control resetting the Arduino
374extern byte pinFuelPressure;
375extern byte pinOilPressure;
376extern byte pinWMIEmpty; // Water tank empty sensor
377extern byte pinWMIIndicator; // No water indicator bulb
378extern byte pinWMIEnabled; // ON-OFF output to relay/pump/solenoid
379extern byte pinMC33810_1_CS;
380extern byte pinMC33810_2_CS;
381extern byte pinSDEnable; //Input for manually enabling SD logging
382#ifdef USE_SPI_EEPROM
383 extern byte pinSPIFlash_CS;
384#endif
385extern byte pinAirConComp; // Air conditioning compressor output
386extern byte pinAirConFan; // Stand-alone air conditioning fan output
387extern byte pinAirConRequest; // Air conditioning request input
388
389/* global variables */ // from speeduino.ino
390//#ifndef UNIT_TEST
391
392//#endif
393
394extern struct statuses currentStatus; //The global status object
395extern struct config2 configPage2;
396extern struct config4 configPage4;
397extern struct config6 configPage6;
398extern struct config9 configPage9;
399extern struct config10 configPage10;
400extern struct config13 configPage13;
401extern struct config15 configPage15;
402
403bool pinIsOutput(byte pin);
404bool pinIsUsed(byte pin);
405
406#endif // GLOBALS_H
The tune page structs and related defines.
volatile PINMASK_TYPE pump_pin_mask
Definition globals.cpp:67
byte pinTrigger3
the 2nd cam sensor pin
Definition globals.cpp:143
byte pinStepperEnable
Definition globals.cpp:184
volatile uint16_t ignitionCount
Definition globals.cpp:93
byte pinMC33810_2_CS
Definition globals.cpp:197
int CRANK_ANGLE_MAX_IGN
Definition globals.cpp:103
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:104
byte pinVSS
Definition globals.cpp:188
byte pinSpareLOut4
Definition globals.cpp:176
byte triggerInterrupt
byte pinSpareLOut2
Definition globals.cpp:174
byte pinFuelPump
Definition globals.cpp:155
table3d6RpmLoad trimTable3d
Definition globals.h:202
byte pinSpareOut6
Definition globals.cpp:170
byte pinCoil4
Pin for coil 4.
Definition globals.cpp:134
volatile PORT_TYPE * inj7_pin_port
Definition globals.cpp:42
volatile PINMASK_TYPE ign7_pin_mask
Definition globals.cpp:60
struct table3d8RpmLoad stagingTable
8x8 fuel staging table
Definition globals.cpp:12
byte pinTrigger2
RPM2 (Typically the Cam Sensor) pin.
Definition globals.cpp:142
volatile PORT_TYPE * inj4_pin_port
Definition globals.cpp:36
byte pinTPS
Definition globals.cpp:144
byte injectorOutputControl
Definition globals.cpp:129
byte maxIgnOutputs
Definition globals.cpp:111
volatile PINMASK_TYPE ign2_pin_mask
Definition globals.cpp:50
struct statuses currentStatus
Definition auxiliaries.cpp:81
trimTable3d trim5Table
6x6 Fuel trim 5 map
Definition globals.cpp:22
volatile PORT_TYPE * flex_pin_port
Definition globals.cpp:69
byte pinFan
Cooling fan output (on/off? See: auxiliaries.ino)
Definition globals.cpp:181
volatile byte TIMER_mask
Definition globals.cpp:117
trimTable3d trim3Table
6x6 Fuel trim 3 map
Definition globals.cpp:20
byte pinBat
Definition globals.cpp:152
volatile uint32_t seclx10
Definition globals.cpp:106
byte pinTachOut
Definition globals.cpp:154
volatile PINMASK_TYPE inj5_pin_mask
Definition globals.cpp:39
byte pinO2_2
Definition globals.cpp:151
volatile PINMASK_TYPE flex_pin_mask
Definition globals.cpp:70
volatile PORT_TYPE * 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
volatile PORT_TYPE * tach_pin_port
Definition globals.cpp:64
byte pinVVT_2
vvt (variable valve timing) output 2
Definition globals.cpp:180
struct table3d8RpmLoad vvt2Table
8x8 vvt2 map
Definition globals.cpp:16
volatile unsigned int toothHistoryIndex
Current index to toothHistory array.
Definition globals.cpp:91
trimTable3d trim4Table
6x6 Fuel trim 4 map
Definition globals.cpp:21
byte pinAirConComp
Definition globals.cpp:202
volatile PORT_TYPE * inj5_pin_port
Definition globals.cpp:38
volatile PINMASK_TYPE ign6_pin_mask
Definition globals.cpp:58
unsigned long currentLoopTime
Definition globals.cpp:92
volatile PINMASK_TYPE ign4_pin_mask
Definition globals.cpp:54
byte ignitionOutputControl
Definition globals.cpp:139
byte pinAirConFan
Definition globals.cpp:203
volatile uint32_t runSecsX10
Definition globals.cpp:105
volatile PINMASK_TYPE inj8_pin_mask
Definition globals.cpp:45
#define TOOTH_LOG_SIZE
Definition globals.h:125
uint16_t fixedCrankingOverride
Definition globals.cpp:86
struct table3d16RpmLoad afrTable
16x16 afr target map
Definition globals.cpp:11
volatile PORT_TYPE * inj2_pin_port
Definition globals.cpp:32
byte pinInjector3
Output pin injector 3.
Definition globals.cpp:123
byte triggerInterrupt2
byte pinInjector2
Output pin injector 2.
Definition globals.cpp:122
volatile byte HWTest_IGN_Pulsed
Definition globals.cpp:110
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
volatile PORT_TYPE * ign8_pin_port
Definition globals.cpp:61
byte pinCTPS
Definition globals.cpp:160
byte pinMAP
Definition globals.cpp:145
byte pinCoil5
Pin for coil 5.
Definition globals.cpp:135
volatile PINMASK_TYPE inj4_pin_mask
Definition globals.cpp:37
bool pinIsOutput(byte pin)
Definition globals.cpp:216
byte pinWMIEnabled
Definition globals.cpp:195
byte maxInjOutputs
Definition globals.cpp:112
byte pinResetControl
Definition globals.cpp:190
byte secondaryTriggerEdge
Definition globals.cpp:100
byte pinSpareOut5
Definition globals.cpp:169
byte pinBoost
Definition globals.cpp:178
volatile PINMASK_TYPE ign5_pin_mask
Definition globals.cpp:56
byte resetControl
resetControl needs to be here (as global) because using the config page (4) directly can prevent burn...
Definition globals.cpp:115
byte pinIdleUp
Definition globals.cpp:158
byte pinIgnBypass
Definition globals.cpp:186
byte pinSpareTemp2
Definition globals.cpp:164
byte pinSpareOut3
Definition globals.cpp:167
byte pinCoil3
Pin for coil 3.
Definition globals.cpp:133
volatile PORT_TYPE * pump_pin_port
Definition globals.cpp:66
volatile byte HWTest_INJ
Definition globals.cpp:107
byte pinBaro
Definition globals.cpp:189
byte pinCoil8
Pin for coil 8.
Definition globals.cpp:138
volatile PORT_TYPE * ign5_pin_port
Definition globals.cpp:55
byte pinCLT
Definition globals.cpp:149
struct table3d16RpmLoad fuelTable2
16x16 fuel map
Definition globals.cpp:8
byte pinLaunch
Definition globals.cpp:185
volatile PORT_TYPE * ign7_pin_port
Definition globals.cpp:59
trimTable3d trim6Table
6x6 Fuel trim 6 map
Definition globals.cpp:23
byte pinEMAP
Definition globals.cpp:146
byte pinO2
Definition globals.cpp:150
byte pinTrigger
RPM1 (Typically CAS=crankshaft angle sensor) pin.
Definition globals.cpp:141
byte pinInjector6
Output pin injector 6.
Definition globals.cpp:126
byte pinStepperDir
Definition globals.cpp:182
byte pinSpareTemp1
Definition globals.cpp:163
byte pinSpark2Input
Definition globals.cpp:162
byte pinFlex
Definition globals.cpp:187
byte pinCoil1
Pin for coil 1.
Definition globals.cpp:131
byte pinIAT
Definition globals.cpp:148
byte pinWMIEmpty
Definition globals.cpp:193
byte pinSpareHOut2
Definition globals.cpp:172
struct config15 configPage15
Definition globals.cpp:213
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:121
struct config10 configPage10
Definition corrections.cpp:64
volatile byte LOOP_TIMER
Definition globals.cpp:118
volatile PORT_TYPE * inj6_pin_port
Definition globals.cpp:40
volatile PORT_TYPE * triggerSec_pin_port
Definition globals.cpp:74
byte pinWMIIndicator
Definition globals.cpp:194
byte pinSpareLOut1
Definition globals.cpp:173
byte pinInjector5
Output pin injector 5.
Definition globals.cpp:125
byte pinStepperStep
Definition globals.cpp:183
volatile unsigned long timer5_overflow_count
Definition globals.cpp:84
trimTable3d trim7Table
6x6 Fuel trim 7 map
Definition globals.cpp:24
byte pinSpareLOut5
Definition globals.cpp:177
byte pinSpareOut4
Definition globals.cpp:168
byte pinIdle1
Definition globals.cpp:156
volatile PINMASK_TYPE inj6_pin_mask
Definition globals.cpp:41
volatile byte HWTest_IGN
Definition globals.cpp:109
struct table3d4RpmLoad dwellTable
4x4 Dwell map
Definition globals.cpp:26
byte pinDisplayReset
Definition globals.cpp:153
byte pinVVT_1
vvt (variable valve timing) output 1
Definition globals.cpp:179
struct table3d8RpmLoad boostTable
8x8 boost map
Definition globals.cpp:13
struct config9 configPage9
Definition globals.cpp:210
volatile PINMASK_TYPE inj3_pin_mask
Definition globals.cpp:35
volatile PORT_TYPE * ign3_pin_port
Definition globals.cpp:51
uint8_t softLimitTime
Definition globals.cpp:81
byte pinIdle2
Definition globals.cpp:157
struct table3d16RpmLoad fuelTable
16x16 fuel map
Definition globals.cpp:7
volatile PINMASK_TYPE triggerThird_pin_mask
Definition globals.cpp:77
volatile PINMASK_TYPE triggerPri_pin_mask
Definition globals.cpp:73
volatile PINMASK_TYPE triggerSec_pin_mask
Definition globals.cpp:75
volatile PORT_TYPE * inj3_pin_port
Definition globals.cpp:34
byte triggerInterrupt3
volatile PORT_TYPE * inj8_pin_port
Definition globals.cpp:44
byte pinSpareOut1
Definition globals.cpp:165
volatile byte HWTest_INJ_Pulsed
Definition globals.cpp:108
byte pinCoil6
Pin for coil 6.
Definition globals.cpp:136
volatile uint8_t compositeLogHistory[TOOTH_LOG_SIZE]
Definition globals.cpp:90
byte pinInjector8
Output pin injector 8.
Definition globals.cpp:128
byte pinInjector7
Output pin injector 7.
Definition globals.cpp:127
volatile PINMASK_TYPE inj7_pin_mask
Definition globals.cpp:43
byte pinAirConRequest
Definition globals.cpp:204
struct config13 configPage13
Definition globals.cpp:212
byte pinSpareLOut3
Definition globals.cpp:175
volatile unsigned long ms_counter
Definition globals.cpp:85
byte primaryTriggerEdge
Definition globals.cpp:99
struct config6 configPage6
Definition corrections.cpp:65
volatile uint16_t mainLoopCount
Definition globals.cpp:82
byte pinMAP2
Definition globals.cpp:147
byte pinSpareOut2
Definition globals.cpp:166
struct config2 configPage2
Definition corrections.cpp:62
byte pinMC33810_1_CS
Definition globals.cpp:196
volatile PORT_TYPE * ign2_pin_port
Definition globals.cpp:49
struct table3d8RpmLoad boostTableLookupDuty
8x8 boost map lookup table
Definition globals.cpp:14
byte pinFuel2Input
Definition globals.cpp:161
volatile PORT_TYPE * ign4_pin_port
Definition globals.cpp:53
byte pinFuelPressure
Definition globals.cpp:191
byte pinSDEnable
Definition globals.cpp:198
volatile uint32_t toothHistory[TOOTH_LOG_SIZE]
Tooth trigger history - delta time (in uS) from last tooth (Indexed by toothHistoryIndex)
Definition globals.cpp:89
volatile PINMASK_TYPE inj2_pin_mask
Definition globals.cpp:33
volatile PINMASK_TYPE ign1_pin_mask
Definition globals.cpp:48
bool pinIsUsed(byte pin)
Definition globals.cpp:271
trimTable3d trim2Table
6x6 Fuel trim 2 map
Definition globals.cpp:19
struct config4 configPage4
Definition corrections.cpp:59
volatile PINMASK_TYPE tach_pin_mask
Definition globals.cpp:65
byte tertiaryTriggerEdge
Definition globals.cpp:101
volatile PORT_TYPE * ign6_pin_port
Definition globals.cpp:57
byte pinCoil2
Pin for coil 2.
Definition globals.cpp:132
byte pinSpareHOut1
Definition globals.cpp:171
volatile PINMASK_TYPE ign3_pin_mask
Definition globals.cpp:52
volatile PINMASK_TYPE ign8_pin_mask
Definition globals.cpp:62
byte pinOilPressure
Definition globals.cpp:192
volatile PORT_TYPE * triggerThird_pin_port
Definition globals.cpp:76
volatile PORT_TYPE * ign1_pin_port
Definition globals.cpp:47
byte pinIdleUpOutput
Definition globals.cpp:159
volatile PORT_TYPE * triggerPri_pin_port
Definition globals.cpp:72
byte pinInjector4
Output pin injector 4.
Definition globals.cpp:124
struct table3d16RpmLoad ignitionTable
16x16 ignition map
Definition globals.cpp:9
volatile PINMASK_TYPE inj1_pin_mask
Definition globals.cpp:31
byte pinCoil7
Pin for coil 7.
Definition globals.cpp:137
trimTable3d trim1Table
6x6 Fuel trim 1 map
Definition globals.cpp:18
uint32_t revolutionTime
Definition globals.cpp:83
trimTable3d trim8Table
6x6 Fuel trim 8 map
Definition globals.cpp:25
struct table3d8RpmLoad vvtTable
8x8 vvt map
Definition globals.cpp:15
static uint32_t rshift(uint32_t a)
Bitwise right shift - generic, unoptimized, case.
Definition bit_shifts.h:348
The statuses struct and related defines.
Definition config_pages.h:712
Definition config_pages.h:906
Definition config_pages.h:959
Definition config_pages.h:249
Definition config_pages.h:425
Definition config_pages.h:528
Definition config_pages.h:630
The status struct with current values for all 'live' variables.
Definition statuses.h:104
3D table data types and functions