Speeduino
Loading...
Searching...
No Matches
decoders.h
Go to the documentation of this file.
1#ifndef DECODERS_H
2#define DECODERS_H
3
4#include "globals.h"
5
6#if defined(CORE_AVR)
7 #define READ_PRI_TRIGGER() ((*triggerPri_pin_port & triggerPri_pin_mask) ? true : false)
8 #define READ_SEC_TRIGGER() ((*triggerSec_pin_port & triggerSec_pin_mask) ? true : false)
9 #define READ_THIRD_TRIGGER() ((*triggerThird_pin_port & triggerThird_pin_mask) ? true : false)
10#else
11 #define READ_PRI_TRIGGER() digitalRead(pinTrigger)
12 #define READ_SEC_TRIGGER() digitalRead(pinTrigger2)
13 #define READ_THIRD_TRIGGER() digitalRead(pinTrigger3)
14#endif
15
16#define DECODER_MISSING_TOOTH 0
17#define DECODER_BASIC_DISTRIBUTOR 1
18#define DECODER_DUAL_WHEEL 2
19#define DECODER_GM7X 3
20#define DECODER_4G63 4
21#define DECODER_24X 5
22#define DECODER_JEEP2000 6
23#define DECODER_AUDI135 7
24#define DECODER_HONDA_D17 8
25#define DECODER_MIATA_9905 9
26#define DECODER_MAZDA_AU 10
27#define DECODER_NON360 11
28#define DECODER_NISSAN_360 12
29#define DECODER_SUBARU_67 13
30#define DECODER_DAIHATSU_PLUS1 14
31#define DECODER_HARLEY 15
32#define DECODER_36_2_2_2 16
33#define DECODER_36_2_1 17
34#define DECODER_420A 18
35#define DECODER_WEBER 19
36#define DECODER_ST170 20
37#define DECODER_DRZ400 21
38#define DECODER_NGC 22
39#define DECODER_VMAX 23
40#define DECODER_RENIX 24
41#define DECODER_ROVERMEMS 25
42#define DECODER_SUZUKI_K6A 26
43#define DECODER_HONDA_J32 27
44#define DECODER_FORD_TFI 28
45
46#define BIT_DECODER_2ND_DERIV 0 //The use of the 2nd derivative calculation is limited to certain decoders. This is set to either true or false in each decoders setup routine
47#define BIT_DECODER_IS_SEQUENTIAL 1 //Whether or not the decoder supports sequential operation
48#define BIT_DECODER_UNUSED1 2
49#define BIT_DECODER_HAS_SECONDARY 3 //Whether or not the decoder supports fixed cranking timing
50#define BIT_DECODER_HAS_FIXED_CRANKING 4
51#define BIT_DECODER_VALID_TRIGGER 5 //Is set true when the last trigger (Primary or secondary) was valid (ie passed filters)
52#define BIT_DECODER_TOOTH_ANG_CORRECT 6 //Whether or not the triggerToothAngle variable is currently accurate. Some patterns have times when the triggerToothAngle variable cannot be accurately set.
53
54#define TRIGGER_FILTER_OFF 0
55#define TRIGGER_FILTER_LITE 1
56#define TRIGGER_FILTER_MEDIUM 2
57#define TRIGGER_FILTER_AGGRESSIVE 3
58
59//220 bytes free
60extern volatile uint8_t decoderState;
61
72
73/*
74extern volatile bool validTrigger; //Is set true when the last trigger (Primary or secondary) was valid (ie passed filters)
75extern volatile bool triggerToothAngleIsCorrect; //Whether or not the triggerToothAngle variable is currently accurate. Some patterns have times when the triggerToothAngle variable cannot be accurately set.
76extern bool secondDerivEnabled; //The use of the 2nd derivative calculation is limited to certain decoders. This is set to either true or false in each decoders setup routine
77extern bool decoderIsSequential; //Whether or not the decoder supports sequential operation
78extern bool decoderHasSecondary; //Whether or not the pattern uses a secondary input
79extern bool decoderHasFixedCrankingTiming;
80*/
81
82void loggerPrimaryISR(void);
83void loggerSecondaryISR(void);
84void loggerTertiaryISR(void);
85
86//All of the below are the 6 required functions for each decoder / pattern
93extern void triggerSetEndTeeth_missingTooth(void);
94
95
96void triggerSetup_DualWheel(void);
97void triggerPri_DualWheel(void);
98void triggerSec_DualWheel(void);
102
109
110void triggerSetup_GM7X(void);
111void triggerPri_GM7X(void);
112void triggerSec_GM7X(void);
114int getCrankAngle_GM7X(void);
115void triggerSetEndTeeth_GM7X(void);
116
117void triggerSetup_4G63(void);
118void triggerPri_4G63(void);
119void triggerSec_4G63(void);
121int getCrankAngle_4G63(void);
122void triggerSetEndTeeth_4G63(void);
123
124void triggerSetup_24X(void);
125void triggerPri_24X(void);
126void triggerSec_24X(void);
127uint16_t getRPM_24X(void);
128int getCrankAngle_24X(void);
129void triggerSetEndTeeth_24X(void);
130
131void triggerSetup_Jeep2000(void);
132void triggerPri_Jeep2000(void);
133void triggerSec_Jeep2000(void);
135int getCrankAngle_Jeep2000(void);
137
138void triggerSetup_Audi135(void);
139void triggerPri_Audi135(void);
140void triggerSec_Audi135(void);
142int getCrankAngle_Audi135(void);
144
145void triggerSetup_HondaD17(void);
146void triggerPri_HondaD17(void);
147void triggerSec_HondaD17(void);
149int getCrankAngle_HondaD17(void);
151
152void triggerSetup_HondaJ32(void);
153void triggerPri_HondaJ32(void);
154void triggerSec_HondaJ32(void);
156int getCrankAngle_HondaJ32(void);
158
159void triggerSetup_Miata9905(void);
160void triggerPri_Miata9905(void);
161void triggerSec_Miata9905(void);
165int getCamAngle_Miata9905(void);
166
167void triggerSetup_MazdaAU(void);
168void triggerPri_MazdaAU(void);
169void triggerSec_MazdaAU(void);
171int getCrankAngle_MazdaAU(void);
173
174void triggerSetup_non360(void);
175void triggerPri_non360(void);
176void triggerSec_non360(void);
178int getCrankAngle_non360(void);
180
181void triggerSetup_Nissan360(void);
182void triggerPri_Nissan360(void);
183void triggerSec_Nissan360(void);
187
188void triggerSetup_Subaru67(void);
189void triggerPri_Subaru67(void);
190void triggerSec_Subaru67(void);
192int getCrankAngle_Subaru67(void);
194
195void triggerSetup_Daihatsu(void);
196void triggerPri_Daihatsu(void);
197void triggerSec_Daihatsu(void);
199int getCrankAngle_Daihatsu(void);
201
202void triggerSetup_Harley(void);
203void triggerPri_Harley(void);
204void triggerSec_Harley(void);
206int getCrankAngle_Harley(void);
208
215
222
223void triggerSetup_420a(void);
224void triggerPri_420a(void);
225void triggerSec_420a(void);
227int getCrankAngle_420a(void);
228void triggerSetEndTeeth_420a(void);
229
230void triggerPri_Webber(void);
231void triggerSec_Webber(void);
232
233void triggerSetup_FordST170(void);
234void triggerSec_FordST170(void);
238
239void triggerSetup_DRZ400(void);
240void triggerSec_DRZ400(void);
241
242void triggerSetup_NGC(void);
243void triggerPri_NGC(void);
244void triggerSec_NGC4(void);
245void triggerSec_NGC68(void);
246uint16_t getRPM_NGC(void);
247void triggerSetEndTeeth_NGC(void);
248
249void triggerSetup_Renix(void);
250void triggerPri_Renix(void);
251void triggerSetEndTeeth_Renix(void);
252
253void triggerSetup_RoverMEMS(void);
254void triggerPri_RoverMEMS(void);
255void triggerSec_RoverMEMS(void);
259
260void triggerSetup_Vmax(void);
261void triggerPri_Vmax(void);
262void triggerSec_Vmax(void);
264int getCrankAngle_Vmax(void);
265void triggerSetEndTeeth_Vmax(void);
266
267void triggerSetup_SuzukiK6A(void);
268void triggerPri_SuzukiK6A(void);
269void triggerSec_SuzukiK6A(void);
273
274void triggerSetup_FordTFI(void);
275void triggerPri_FordTFI(void);
276void triggerSec_FordTFI(void);
278int getCrankAngle_FordTFI(void);
280
286void resetDecoder(void);
287
288extern void (*triggerHandler)(void); //Pointer for the trigger function (Gets pointed to the relevant decoder)
289extern void (*triggerSecondaryHandler)(void); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder)
290extern void (*triggerTertiaryHandler)(void); //Pointer for the tertiary trigger function (Gets pointed to the relevant decoder)
291
292extern uint16_t (*getRPM)(void); //Pointer to the getRPM function (Gets pointed to the relevant decoder)
293extern int (*getCrankAngle)(void); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder)
294extern void (*triggerSetEndTeeth)(void); //Pointer to the triggerSetEndTeeth function of each decoder
295
296extern volatile unsigned long curTime;
297extern volatile unsigned long curGap;
298extern volatile unsigned long curTime2;
299extern volatile unsigned long curGap2;
300extern volatile unsigned long lastGap;
301extern volatile unsigned long targetGap;
302
303extern volatile uint16_t toothCurrentCount; //The current number of teeth (Once sync has been achieved, this can never actually be 0
304extern volatile unsigned long toothSystemLastToothTime; //As below, but used for decoders where not every tooth count is used for calculation
305extern volatile unsigned long toothLastThirdToothTime; //The time (micros()) that the last tooth was registered on the second cam input
306extern volatile unsigned long toothLastMinusOneToothTime; //The time (micros()) that the tooth before the last tooth was registered
307extern volatile unsigned long toothLastMinusOneSecToothTime; //The time (micros()) that the tooth before the last tooth was registered on secondary input
308extern volatile unsigned long targetGap2;
309
310extern volatile unsigned long toothOneTime; //The time (micros()) that tooth 1 last triggered
311extern volatile unsigned long toothOneMinusOneTime; //The 2nd to last time (micros()) that tooth 1 last triggered
312extern volatile bool revolutionOne; // For sequential operation, this tracks whether the current revolution is 1 or 2 (not 1)
313
314extern volatile unsigned long secondaryLastToothTime; //The time (micros()) that the last tooth was registered (Cam input)
315extern volatile unsigned long secondaryLastToothTime1; //The time (micros()) that the last tooth was registered (Cam input)
316
318extern volatile unsigned long triggerFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering)
319extern volatile unsigned long triggerSecFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) for the secondary input
320extern unsigned int triggerSecFilterTime_duration; // The shortest valid time (in uS) pulse DURATION
321extern volatile uint16_t triggerToothAngle; //The number of crank degrees that elapse per tooth
322extern byte checkSyncToothCount; //How many teeth must've been seen on this revolution before we try to confirm sync (Useful for missing tooth type decoders)
323extern unsigned long elapsedTime;
324extern unsigned long lastCrankAngleCalc;
325extern unsigned long lastVVTtime; //The time between the vvt reference pulse and the last crank pulse
326
335
336extern int16_t toothAngles[24]; //An array for storing fixed tooth angles. Currently sized at 24 for the GM 24X decoder, but may grow later if there are other decoders that use this style
337
338#define CRANK_SPEED 0U
339#define CAM_SPEED 1U
340
341#define TOOTH_CRANK 0
342#define TOOTH_CAM_SECONDARY 1
343#define TOOTH_CAM_TERTIARY 2
344
345// used by the ROVER MEMS pattern
346#define ID_TOOTH_PATTERN 0 // have we identified teeth to skip for calculating RPM?
347#define SKIP_TOOTH1 1
348#define SKIP_TOOTH2 2
349#define SKIP_TOOTH3 3
350#define SKIP_TOOTH4 4
351
352#endif
void(* triggerSetEndTeeth)(void)
Pointer to the getCrank Angle function (Gets pointed to the relevant decoder)
Definition decoders.cpp:57
volatile unsigned long toothLastMinusOneSecToothTime
Definition decoders.cpp:79
byte checkSyncToothCount
Definition decoders.cpp:108
unsigned int triggerSecFilterTime_duration
Definition decoders.cpp:106
void triggerSec_DRZ400(void)
Definition decoders.cpp:4518
volatile unsigned long curGap2
Definition decoders.cpp:65
unsigned long lastCrankAngleCalc
Definition decoders.cpp:110
uint16_t ignition8EndTooth
Definition decoders.cpp:120
unsigned long lastVVTtime
Definition decoders.cpp:111
volatile unsigned long triggerSecFilterTime
Definition decoders.cpp:101
volatile unsigned long targetGap
Definition decoders.cpp:69
volatile uint8_t decoderState
Definition decoders.cpp:104
volatile unsigned long curTime2
Definition decoders.cpp:64
int16_t toothAngles[24]
Definition decoders.cpp:122
volatile unsigned long toothSystemLastToothTime
Definition decoders.cpp:74
void(* triggerSecondaryHandler)(void)
Pointer for the trigger function (Gets pointed to the relevant decoder)
Definition decoders.cpp:53
volatile unsigned long lastGap
Definition decoders.cpp:68
uint16_t ignition1EndTooth
Definition decoders.cpp:113
void triggerSetup_DRZ400(void)
Definition decoders.cpp:4504
volatile unsigned long secondaryLastToothTime1
Definition decoders.cpp:93
unsigned long elapsedTime
Definition decoders.cpp:109
volatile uint16_t triggerToothAngle
Definition decoders.cpp:107
void(* triggerTertiaryHandler)(void)
Pointer for the secondary trigger function (Gets pointed to the relevant decoder)
Definition decoders.cpp:54
volatile unsigned long curTime
Definition decoders.cpp:62
volatile uint16_t toothCurrentCount
Definition decoders.cpp:72
uint16_t ignition2EndTooth
Definition decoders.cpp:114
volatile unsigned long secondaryLastToothTime
Definition decoders.cpp:92
volatile unsigned long toothOneTime
Definition decoders.cpp:84
volatile unsigned long toothLastMinusOneToothTime
Definition decoders.cpp:78
int(* getCrankAngle)(void)
Pointer to the getRPM function (Gets pointed to the relevant decoder)
Definition decoders.cpp:56
uint16_t triggerActualTeeth
Definition decoders.cpp:99
volatile unsigned long curGap
Definition decoders.cpp:63
volatile unsigned long targetGap2
Definition decoders.cpp:82
void(* triggerHandler)(void)
Definition decoders.cpp:52
uint16_t ignition7EndTooth
Definition decoders.cpp:119
uint16_t ignition6EndTooth
Definition decoders.cpp:118
uint16_t(* getRPM)(void)
Pointer for the tertiary trigger function (Gets pointed to the relevant decoder)
Definition decoders.cpp:55
uint16_t ignition3EndTooth
Definition decoders.cpp:115
volatile unsigned long triggerFilterTime
Definition decoders.cpp:100
volatile unsigned long toothLastThirdToothTime
Definition decoders.cpp:77
uint16_t ignition4EndTooth
Definition decoders.cpp:116
volatile bool revolutionOne
Definition decoders.cpp:87
uint16_t ignition5EndTooth
Definition decoders.cpp:117
volatile unsigned long toothOneMinusOneTime
Definition decoders.cpp:85
void triggerSec_FordTFI(void)
Definition decoders.cpp:6055
void triggerPri_FordTFI(void)
Definition decoders.cpp:6005
int getCrankAngle_FordTFI(void)
Definition decoders.cpp:6141
uint16_t getRPM_FordTFI(void)
Definition decoders.cpp:6120
void triggerSetup_FordTFI(void)
Definition decoders.cpp:5980
void triggerSetEndTeeth_FordTFI(void)
Definition decoders.cpp:6173
int getCrankAngle_SuzukiK6A(void)
Definition decoders.cpp:5920
void triggerPri_SuzukiK6A(void)
Definition decoders.cpp:5694
void triggerSetup_SuzukiK6A(void)
Definition decoders.cpp:5647
uint16_t getRPM_SuzukiK6A(void)
Definition decoders.cpp:5908
void triggerSetEndTeeth_SuzukiK6A(void)
Definition decoders.cpp:5962
void triggerSec_SuzukiK6A(void)
Definition decoders.cpp:5903
void triggerSec_ThirtySixMinus21(void)
Definition decoders.cpp:4024
void triggerSetEndTeeth_ThirtySixMinus21(void)
Definition decoders.cpp:4053
int getCrankAngle_ThirtySixMinus21(void)
Definition decoders.cpp:4047
uint16_t getRPM_ThirtySixMinus21(void)
Definition decoders.cpp:4029
void triggerSetup_ThirtySixMinus21(void)
Definition decoders.cpp:3938
void triggerPri_ThirtySixMinus21(void)
Definition decoders.cpp:3954
void triggerSec_ThirtySixMinus222(void)
Definition decoders.cpp:3865
uint16_t getRPM_ThirtySixMinus222(void)
Definition decoders.cpp:3870
void triggerSetEndTeeth_ThirtySixMinus222(void)
Definition decoders.cpp:3899
int getCrankAngle_ThirtySixMinus222(void)
Definition decoders.cpp:3893
void triggerSetup_ThirtySixMinus222(void)
Definition decoders.cpp:3758
void triggerPri_ThirtySixMinus222(void)
Definition decoders.cpp:3774
void triggerPri_Audi135(void)
Definition decoders.cpp:2112
void triggerSetEndTeeth_Audi135(void)
Definition decoders.cpp:2207
int getCrankAngle_Audi135(void)
Definition decoders.cpp:2175
void triggerSec_Audi135(void)
Definition decoders.cpp:2150
void triggerSetup_Audi135(void)
Definition decoders.cpp:2098
uint16_t getRPM_Audi135(void)
Definition decoders.cpp:2170
void triggerPri_Daihatsu(void)
Definition decoders.cpp:3483
void triggerSetEndTeeth_Daihatsu(void)
Definition decoders.cpp:3604
int getCrankAngle_Daihatsu(void)
Definition decoders.cpp:3579
void triggerSec_Daihatsu(void)
Definition decoders.cpp:3551
void triggerSetup_Daihatsu(void)
Definition decoders.cpp:3453
uint16_t getRPM_Daihatsu(void)
Definition decoders.cpp:3553
uint16_t getRPM_BasicDistributor(void)
Definition decoders.cpp:1178
void triggerSec_BasicDistributor(void)
Definition decoders.cpp:1177
void triggerSetup_BasicDistributor(void)
Definition decoders.cpp:1098
void triggerSetEndTeeth_BasicDistributor(void)
Definition decoders.cpp:1224
int getCrankAngle_BasicDistributor(void)
Definition decoders.cpp:1197
void triggerPri_BasicDistributor(void)
Definition decoders.cpp:1121
void triggerSetup_420a(void)
Definition decoders.cpp:4069
uint16_t getRPM_420a(void)
Definition decoders.cpp:4185
int getCrankAngle_420a(void)
Definition decoders.cpp:4200
void triggerSetEndTeeth_420a(void)
Definition decoders.cpp:4225
void triggerSec_420a(void)
Definition decoders.cpp:4140
void triggerPri_420a(void)
Definition decoders.cpp:4101
void triggerPri_DualWheel(void)
Definition decoders.cpp:923
int getCrankAngle_DualWheel(void)
Definition decoders.cpp:1022
void triggerSec_DualWheel(void)
Definition decoders.cpp:968
void triggerSetEndTeeth_DualWheel(void)
Definition decoders.cpp:1066
void triggerSetup_DualWheel(void)
Definition decoders.cpp:903
uint16_t getRPM_DualWheel(void)
Definition decoders.cpp:1002
void triggerSetEndTeeth_FordST170(void)
Definition decoders.cpp:4489
void triggerSetup_FordST170(void)
Definition decoders.cpp:4357
void triggerSec_FordST170(void)
Definition decoders.cpp:4385
int getCrankAngle_FordST170(void)
Definition decoders.cpp:4450
uint16_t getRPM_FordST170(void)
Definition decoders.cpp:4432
void triggerPri_GM7X(void)
Definition decoders.cpp:1314
void triggerSetup_GM7X(void)
Definition decoders.cpp:1305
int getCrankAngle_GM7X(void)
Definition decoders.cpp:1378
void triggerSetEndTeeth_GM7X(void)
Definition decoders.cpp:1415
void triggerSec_GM7X(void)
Definition decoders.cpp:1373
uint16_t getRPM_GM7X(void)
Definition decoders.cpp:1374
void triggerSec_24X(void)
Definition decoders.cpp:1941
uint16_t getRPM_24X(void)
Definition decoders.cpp:1947
void triggerSetup_24X(void)
Definition decoders.cpp:1873
void triggerPri_24X(void)
Definition decoders.cpp:1909
int getCrankAngle_24X(void)
Definition decoders.cpp:1951
void triggerSetEndTeeth_24X(void)
Definition decoders.cpp:1981
int getCrankAngle_Harley(void)
Definition decoders.cpp:3709
void triggerSetEndTeeth_Harley(void)
Definition decoders.cpp:3741
void triggerSec_Harley(void)
Definition decoders.cpp:3668
uint16_t getRPM_Harley(void)
Definition decoders.cpp:3675
void triggerSetup_Harley(void)
Definition decoders.cpp:3615
void triggerPri_Harley(void)
Definition decoders.cpp:3626
void triggerPri_HondaD17(void)
Definition decoders.cpp:2225
uint16_t getRPM_HondaD17(void)
Definition decoders.cpp:2267
int getCrankAngle_HondaD17(void)
Definition decoders.cpp:2271
void triggerSec_HondaD17(void)
Definition decoders.cpp:2266
void triggerSetEndTeeth_HondaD17(void)
Definition decoders.cpp:2304
void triggerSetup_HondaD17(void)
Definition decoders.cpp:2216
int getCrankAngle_HondaJ32(void)
Definition decoders.cpp:2413
void triggerSetup_HondaJ32(void)
Definition decoders.cpp:2326
uint16_t getRPM_HondaJ32(void)
Definition decoders.cpp:2408
void triggerPri_HondaJ32(void)
Definition decoders.cpp:2344
void triggerSetEndTeeth_HondaJ32(void)
Definition decoders.cpp:2447
void triggerSec_HondaJ32(void)
Definition decoders.cpp:2403
void triggerSec_Jeep2000(void)
Definition decoders.cpp:2051
void triggerSetEndTeeth_Jeep2000(void)
Definition decoders.cpp:2087
uint16_t getRPM_Jeep2000(void)
Definition decoders.cpp:2057
void triggerPri_Jeep2000(void)
Definition decoders.cpp:2018
int getCrankAngle_Jeep2000(void)
Definition decoders.cpp:2061
void triggerSetup_Jeep2000(void)
Definition decoders.cpp:1994
void triggerSetEndTeeth_missingTooth(void)
Definition decoders.cpp:871
void triggerPri_missingTooth(void)
Definition decoders.cpp:568
void triggerThird_missingTooth(void)
Definition decoders.cpp:768
void triggerSec_missingTooth(void)
Definition decoders.cpp:687
uint16_t getRPM_missingTooth(void)
Definition decoders.cpp:800
int getCrankAngle_missingTooth(void)
Definition decoders.cpp:818
void triggerSetup_missingTooth(void)
Definition decoders.cpp:531
void triggerPri_4G63(void)
Definition decoders.cpp:1493
void triggerSetup_4G63(void)
Definition decoders.cpp:1439
void triggerSec_4G63(void)
Definition decoders.cpp:1681
uint16_t getRPM_4G63(void)
Definition decoders.cpp:1760
int getCrankAngle_4G63(void)
Definition decoders.cpp:1797
void triggerSetEndTeeth_4G63(void)
Definition decoders.cpp:1824
void triggerSetEndTeeth_Nissan360(void)
Definition decoders.cpp:3159
void triggerSetup_Nissan360(void)
Definition decoders.cpp:2953
void triggerSec_Nissan360(void)
Definition decoders.cpp:3009
int getCrankAngle_Nissan360(void)
Definition decoders.cpp:3129
void triggerPri_Nissan360(void)
Definition decoders.cpp:2967
uint16_t getRPM_Nissan360(void)
Definition decoders.cpp:3103
void triggerSetEndTeeth_non360(void)
Definition decoders.cpp:2943
void triggerPri_non360(void)
Definition decoders.cpp:2893
void triggerSetup_non360(void)
Definition decoders.cpp:2880
void triggerSec_non360(void)
Definition decoders.cpp:2898
int getCrankAngle_non360(void)
Definition decoders.cpp:2914
uint16_t getRPM_non360(void)
Definition decoders.cpp:2903
void triggerSetEndTeeth_Renix(void)
Definition decoders.cpp:5217
void triggerSetup_Renix(void)
Definition decoders.cpp:5095
void triggerPri_Renix(void)
Definition decoders.cpp:5131
void triggerSetEndTeeth_Subaru67(void)
Definition decoders.cpp:3406
uint16_t getRPM_Subaru67(void)
Definition decoders.cpp:3365
void triggerSetup_Subaru67(void)
Definition decoders.cpp:3179
void triggerSec_Subaru67(void)
Definition decoders.cpp:3327
void triggerPri_Subaru67(void)
Definition decoders.cpp:3208
int getCrankAngle_Subaru67(void)
Definition decoders.cpp:3378
void resetDecoder(void)
This function is called when the engine is stopped, or when the engine is started....
Definition decoders.cpp:352
void loggerPrimaryISR(void)
Definition decoders.cpp:214
bool engineIsRunning(uint32_t curTime)
Is the engine running?
Definition decoders.cpp:342
void loggerTertiaryISR(void)
Definition decoders.cpp:273
void loggerSecondaryISR(void)
Definition decoders.cpp:248
int getCrankAngle_Vmax(void)
Definition decoders.cpp:5052
void triggerSetEndTeeth_Vmax(void)
Definition decoders.cpp:5078
void triggerSetup_Vmax(void)
Definition decoders.cpp:4893
void triggerPri_Vmax(void)
Definition decoders.cpp:4917
uint16_t getRPM_Vmax(void)
Definition decoders.cpp:5023
void triggerSec_Vmax(void)
Definition decoders.cpp:5016
void triggerPri_Webber(void)
Definition decoders.cpp:4249
void triggerSec_Webber(void)
Definition decoders.cpp:4300
void triggerSetup_RoverMEMS(void)
Definition decoders.cpp:5261
void triggerPri_RoverMEMS(void)
Definition decoders.cpp:5285
uint16_t getRPM_RoverMEMS(void)
Definition decoders.cpp:5559
void triggerSec_NGC68(void)
Definition decoders.cpp:4778
uint16_t getRPM_NGC(void)
Definition decoders.cpp:4833
void triggerSec_RoverMEMS(void)
Definition decoders.cpp:5477
void triggerPri_NGC(void)
Definition decoders.cpp:4612
void triggerSetEndTeeth_NGC(void)
Definition decoders.cpp:4867
int getCrankAngle_RoverMEMS(void)
Definition decoders.cpp:5449
void triggerSetup_NGC(void)
Definition decoders.cpp:4555
void triggerSetEndTeeth_RoverMEMS(void)
Definition decoders.cpp:5579
void triggerSec_NGC4(void)
Definition decoders.cpp:4726
static uint32_t rshift(uint32_t a)
Bitwise right shift - generic, unoptimized, case.
Definition bit_shifts.h:348
uint16_t getRPM_MazdaAU(void)
Definition decoders.cpp:2820
void triggerPri_MazdaAU(void)
Definition decoders.cpp:2751
void triggerSetEndTeeth_MazdaAU(void)
Definition decoders.cpp:2870
void triggerSec_MazdaAU(void)
Definition decoders.cpp:2788
int getCrankAngle_MazdaAU(void)
Definition decoders.cpp:2842
void triggerSetup_MazdaAU(void)
Definition decoders.cpp:2731
void triggerSetEndTeeth_Miata9905(void)
Definition decoders.cpp:2684
int getCrankAngle_Miata9905(void)
Definition decoders.cpp:2645
void triggerSec_Miata9905(void)
Definition decoders.cpp:2587
uint16_t getRPM_Miata9905(void)
Definition decoders.cpp:2613
void triggerPri_Miata9905(void)
Definition decoders.cpp:2500
void triggerSetup_Miata9905(void)
Definition decoders.cpp:2462
int getCamAngle_Miata9905(void)
Definition decoders.cpp:2673