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
45#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
46#define BIT_DECODER_IS_SEQUENTIAL 1 //Whether or not the decoder supports sequential operation
47#define BIT_DECODER_UNUSED1 2
48#define BIT_DECODER_HAS_SECONDARY 3 //Whether or not the decoder supports fixed cranking timing
49#define BIT_DECODER_HAS_FIXED_CRANKING 4
50#define BIT_DECODER_VALID_TRIGGER 5 //Is set true when the last trigger (Primary or secondary) was valid (ie passed filters)
51#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.
52
53//220 bytes free
54extern volatile uint8_t decoderState;
55
56/*
57extern volatile bool validTrigger; //Is set true when the last trigger (Primary or secondary) was valid (ie passed filters)
58extern volatile bool triggerToothAngleIsCorrect; //Whether or not the triggerToothAngle variable is currently accurate. Some patterns have times when the triggerToothAngle variable cannot be accurately set.
59extern 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
60extern bool decoderIsSequential; //Whether or not the decoder supports sequential operation
61extern bool decoderHasSecondary; //Whether or not the pattern uses a secondary input
62extern bool decoderHasFixedCrankingTiming;
63*/
64
65//This isn't to to filter out wrong pulses on triggers, but just to smooth out the cam angle reading for better closed loop VVT control.
66#define ANGLE_FILTER(input, alpha, prior) (((long)(input) * (256 - (alpha)) + ((long)(prior) * (alpha)))) >> 8
67
68void loggerPrimaryISR(void);
69void loggerSecondaryISR(void);
70void loggerTertiaryISR(void);
71
72//All of the below are the 6 required functions for each decoder / pattern
79extern void triggerSetEndTeeth_missingTooth(void);
80
81
82void triggerSetup_DualWheel(void);
83void triggerPri_DualWheel(void);
84void triggerSec_DualWheel(void);
88
95
96void triggerSetup_GM7X(void);
97void triggerPri_GM7X(void);
98void triggerSec_GM7X(void);
100int getCrankAngle_GM7X(void);
101void triggerSetEndTeeth_GM7X(void);
102
103void triggerSetup_4G63(void);
104void triggerPri_4G63(void);
105void triggerSec_4G63(void);
107int getCrankAngle_4G63(void);
108void triggerSetEndTeeth_4G63(void);
109
110void triggerSetup_24X(void);
111void triggerPri_24X(void);
112void triggerSec_24X(void);
113uint16_t getRPM_24X(void);
114int getCrankAngle_24X(void);
115void triggerSetEndTeeth_24X(void);
116
117void triggerSetup_Jeep2000(void);
118void triggerPri_Jeep2000(void);
119void triggerSec_Jeep2000(void);
121int getCrankAngle_Jeep2000(void);
123
124void triggerSetup_Audi135(void);
125void triggerPri_Audi135(void);
126void triggerSec_Audi135(void);
128int getCrankAngle_Audi135(void);
130
131void triggerSetup_HondaD17(void);
132void triggerPri_HondaD17(void);
133void triggerSec_HondaD17(void);
135int getCrankAngle_HondaD17(void);
137
138void triggerSetup_HondaJ32(void);
139void triggerPri_HondaJ32(void);
140void triggerSec_HondaJ32(void);
142int getCrankAngle_HondaJ32(void);
144
145void triggerSetup_Miata9905(void);
146void triggerPri_Miata9905(void);
147void triggerSec_Miata9905(void);
151int getCamAngle_Miata9905(void);
152
153void triggerSetup_MazdaAU(void);
154void triggerPri_MazdaAU(void);
155void triggerSec_MazdaAU(void);
157int getCrankAngle_MazdaAU(void);
159
160void triggerSetup_non360(void);
161void triggerPri_non360(void);
162void triggerSec_non360(void);
164int getCrankAngle_non360(void);
166
167void triggerSetup_Nissan360(void);
168void triggerPri_Nissan360(void);
169void triggerSec_Nissan360(void);
173
174void triggerSetup_Subaru67(void);
175void triggerPri_Subaru67(void);
176void triggerSec_Subaru67(void);
178int getCrankAngle_Subaru67(void);
180
181void triggerSetup_Daihatsu(void);
182void triggerPri_Daihatsu(void);
183void triggerSec_Daihatsu(void);
185int getCrankAngle_Daihatsu(void);
187
188void triggerSetup_Harley(void);
189void triggerPri_Harley(void);
190void triggerSec_Harley(void);
192int getCrankAngle_Harley(void);
194
201
208
209void triggerSetup_420a(void);
210void triggerPri_420a(void);
211void triggerSec_420a(void);
213int getCrankAngle_420a(void);
214void triggerSetEndTeeth_420a(void);
215
216void triggerPri_Webber(void);
217void triggerSec_Webber(void);
218
219void triggerSetup_FordST170(void);
220void triggerSec_FordST170(void);
224
225void triggerSetup_DRZ400(void);
226void triggerSec_DRZ400(void);
227
228void triggerSetup_NGC(void);
229void triggerPri_NGC(void);
230void triggerSec_NGC4(void);
231void triggerSec_NGC68(void);
232uint16_t getRPM_NGC(void);
233void triggerSetEndTeeth_NGC(void);
234
235void triggerSetup_Renix(void);
236void triggerPri_Renix(void);
237void triggerSetEndTeeth_Renix(void);
238
239void triggerSetup_RoverMEMS(void);
240void triggerPri_RoverMEMS(void);
241void triggerSec_RoverMEMS(void);
245
246void triggerSetup_Vmax(void);
247void triggerPri_Vmax(void);
248void triggerSec_Vmax(void);
250int getCrankAngle_Vmax(void);
251void triggerSetEndTeeth_Vmax(void);
252
253void triggerSetup_SuzukiK6A(void);
254void triggerPri_SuzukiK6A(void);
255void triggerSec_SuzukiK6A(void);
259
260
261
262extern void (*triggerHandler)(void); //Pointer for the trigger function (Gets pointed to the relevant decoder)
263extern void (*triggerSecondaryHandler)(void); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder)
264extern void (*triggerTertiaryHandler)(void); //Pointer for the tertiary trigger function (Gets pointed to the relevant decoder)
265
266extern uint16_t (*getRPM)(void); //Pointer to the getRPM function (Gets pointed to the relevant decoder)
267extern int (*getCrankAngle)(void); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder)
268extern void (*triggerSetEndTeeth)(void); //Pointer to the triggerSetEndTeeth function of each decoder
269
270extern volatile unsigned long curTime;
271extern volatile unsigned long curGap;
272extern volatile unsigned long curTime2;
273extern volatile unsigned long curGap2;
274extern volatile unsigned long lastGap;
275extern volatile unsigned long targetGap;
276
277extern unsigned long MAX_STALL_TIME; //The maximum time (in uS) that the system will continue to function before the engine is considered stalled/stopped. This is unique to each decoder, depending on the number of teeth etc. 500000 (half a second) is used as the default value, most decoders will be much less.
278extern volatile uint16_t toothCurrentCount; //The current number of teeth (Once sync has been achieved, this can never actually be 0
279extern volatile byte toothSystemCount; //Used for decoders such as Audi 135 where not every tooth is used for calculating crank angle. This variable stores the actual number of teeth, not the number being used to calculate crank angle
280extern volatile unsigned long toothSystemLastToothTime; //As below, but used for decoders where not every tooth count is used for calculation
281extern volatile unsigned long toothLastToothTime; //The time (micros()) that the last tooth was registered
282extern volatile unsigned long toothLastSecToothTime; //The time (micros()) that the last tooth was registered on the secondary input
283extern volatile unsigned long toothLastThirdToothTime; //The time (micros()) that the last tooth was registered on the second cam input
284extern volatile unsigned long toothLastMinusOneToothTime; //The time (micros()) that the tooth before the last tooth was registered
285extern volatile unsigned long toothLastMinusOneSecToothTime; //The time (micros()) that the tooth before the last tooth was registered on secondary input
286extern volatile unsigned long targetGap2;
287
288extern volatile unsigned long toothOneTime; //The time (micros()) that tooth 1 last triggered
289extern volatile unsigned long toothOneMinusOneTime; //The 2nd to last time (micros()) that tooth 1 last triggered
290extern volatile bool revolutionOne; // For sequential operation, this tracks whether the current revolution is 1 or 2 (not 1)
291
292extern volatile unsigned int secondaryToothCount; //Used for identifying the current secondary (Usually cam) tooth for patterns with multiple secondary teeth
293extern volatile unsigned long secondaryLastToothTime; //The time (micros()) that the last tooth was registered (Cam input)
294extern volatile unsigned long secondaryLastToothTime1; //The time (micros()) that the last tooth was registered (Cam input)
295
297extern volatile unsigned long triggerFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering)
298extern volatile unsigned long triggerSecFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) for the secondary input
299extern unsigned int triggerSecFilterTime_duration; // The shortest valid time (in uS) pulse DURATION
300extern volatile uint16_t triggerToothAngle; //The number of crank degrees that elapse per tooth
301extern byte checkSyncToothCount; //How many teeth must've been seen on this revolution before we try to confirm sync (Useful for missing tooth type decoders)
302extern unsigned long elapsedTime;
303extern unsigned long lastCrankAngleCalc;
304extern unsigned long lastVVTtime; //The time between the vvt reference pulse and the last crank pulse
305
314
315extern 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
316
317#define CRANK_SPEED 0U
318#define CAM_SPEED 1U
319
320#define TOOTH_CRANK 0
321#define TOOTH_CAM_SECONDARY 1
322#define TOOTH_CAM_TERTIARY 2
323
324// used by the ROVER MEMS pattern
325#define ID_TOOTH_PATTERN 0 // have we identified teeth to skip for calculating RPM?
326#define SKIP_TOOTH1 1
327#define SKIP_TOOTH2 2
328#define SKIP_TOOTH3 3
329#define SKIP_TOOTH4 4
330
331#endif
void(* triggerSetEndTeeth)(void)
Pointer to the getCrank Angle function (Gets pointed to the relevant decoder)
Definition decoders.cpp:55
volatile unsigned long toothLastToothTime
Definition decoders.cpp:73
volatile unsigned long toothLastMinusOneSecToothTime
Definition decoders.cpp:77
byte checkSyncToothCount
Definition decoders.cpp:105
unsigned int triggerSecFilterTime_duration
Definition decoders.cpp:103
void triggerSec_DRZ400(void)
Definition decoders.cpp:4472
volatile unsigned long curGap2
Definition decoders.cpp:63
unsigned long lastCrankAngleCalc
Definition decoders.cpp:107
uint16_t ignition8EndTooth
Definition decoders.cpp:117
unsigned long MAX_STALL_TIME
Definition decoders.cpp:69
volatile unsigned long toothLastSecToothTime
Definition decoders.cpp:74
unsigned long lastVVTtime
Definition decoders.cpp:108
volatile unsigned long triggerSecFilterTime
Definition decoders.cpp:98
volatile unsigned long targetGap
Definition decoders.cpp:67
volatile uint8_t decoderState
Definition decoders.cpp:101
volatile unsigned long curTime2
Definition decoders.cpp:62
int16_t toothAngles[24]
Definition decoders.cpp:119
volatile unsigned long toothSystemLastToothTime
Definition decoders.cpp:72
void(* triggerSecondaryHandler)(void)
Pointer for the trigger function (Gets pointed to the relevant decoder)
Definition decoders.cpp:51
volatile unsigned long lastGap
Definition decoders.cpp:66
uint16_t ignition1EndTooth
Definition decoders.cpp:110
void triggerSetup_DRZ400(void)
Definition decoders.cpp:4458
volatile unsigned long secondaryLastToothTime1
Definition decoders.cpp:90
unsigned long elapsedTime
Definition decoders.cpp:106
volatile uint16_t triggerToothAngle
Definition decoders.cpp:104
volatile byte toothSystemCount
Definition decoders.cpp:71
void(* triggerTertiaryHandler)(void)
Pointer for the secondary trigger function (Gets pointed to the relevant decoder)
Definition decoders.cpp:52
volatile unsigned long curTime
Definition decoders.cpp:60
volatile uint16_t toothCurrentCount
Definition decoders.cpp:70
uint16_t ignition2EndTooth
Definition decoders.cpp:111
volatile unsigned long secondaryLastToothTime
Definition decoders.cpp:89
volatile unsigned long toothOneTime
Definition decoders.cpp:82
volatile unsigned int secondaryToothCount
Definition decoders.cpp:87
volatile unsigned long toothLastMinusOneToothTime
Definition decoders.cpp:76
int(* getCrankAngle)(void)
Pointer to the getRPM function (Gets pointed to the relevant decoder)
Definition decoders.cpp:54
uint16_t triggerActualTeeth
Definition decoders.cpp:96
volatile unsigned long curGap
Definition decoders.cpp:61
volatile unsigned long targetGap2
Definition decoders.cpp:80
void(* triggerHandler)(void)
Definition decoders.cpp:50
uint16_t ignition7EndTooth
Definition decoders.cpp:116
uint16_t ignition6EndTooth
Definition decoders.cpp:115
uint16_t(* getRPM)(void)
Pointer for the tertiary trigger function (Gets pointed to the relevant decoder)
Definition decoders.cpp:53
uint16_t ignition3EndTooth
Definition decoders.cpp:112
volatile unsigned long triggerFilterTime
Definition decoders.cpp:97
volatile unsigned long toothLastThirdToothTime
Definition decoders.cpp:75
uint16_t ignition4EndTooth
Definition decoders.cpp:113
volatile bool revolutionOne
Definition decoders.cpp:84
uint16_t ignition5EndTooth
Definition decoders.cpp:114
volatile unsigned long toothOneMinusOneTime
Definition decoders.cpp:83
int getCrankAngle_SuzukiK6A(void)
Definition decoders.cpp:5874
void triggerPri_SuzukiK6A(void)
Definition decoders.cpp:5654
void triggerSetup_SuzukiK6A(void)
Definition decoders.cpp:5608
uint16_t getRPM_SuzukiK6A(void)
Definition decoders.cpp:5861
void triggerSetEndTeeth_SuzukiK6A(void)
Definition decoders.cpp:5932
void triggerSec_SuzukiK6A(void)
Definition decoders.cpp:5856
void triggerSec_ThirtySixMinus21(void)
Definition decoders.cpp:3978
void triggerSetEndTeeth_ThirtySixMinus21(void)
Definition decoders.cpp:4007
int getCrankAngle_ThirtySixMinus21(void)
Definition decoders.cpp:4001
uint16_t getRPM_ThirtySixMinus21(void)
Definition decoders.cpp:3983
void triggerSetup_ThirtySixMinus21(void)
Definition decoders.cpp:3892
void triggerPri_ThirtySixMinus21(void)
Definition decoders.cpp:3908
void triggerSec_ThirtySixMinus222(void)
Definition decoders.cpp:3819
uint16_t getRPM_ThirtySixMinus222(void)
Definition decoders.cpp:3824
void triggerSetEndTeeth_ThirtySixMinus222(void)
Definition decoders.cpp:3853
int getCrankAngle_ThirtySixMinus222(void)
Definition decoders.cpp:3847
void triggerSetup_ThirtySixMinus222(void)
Definition decoders.cpp:3712
void triggerPri_ThirtySixMinus222(void)
Definition decoders.cpp:3728
void triggerPri_Audi135(void)
Definition decoders.cpp:2067
void triggerSetEndTeeth_Audi135(void)
Definition decoders.cpp:2162
int getCrankAngle_Audi135(void)
Definition decoders.cpp:2130
void triggerSec_Audi135(void)
Definition decoders.cpp:2105
void triggerSetup_Audi135(void)
Definition decoders.cpp:2053
uint16_t getRPM_Audi135(void)
Definition decoders.cpp:2125
void triggerPri_Daihatsu(void)
Definition decoders.cpp:3437
void triggerSetEndTeeth_Daihatsu(void)
Definition decoders.cpp:3558
int getCrankAngle_Daihatsu(void)
Definition decoders.cpp:3533
void triggerSec_Daihatsu(void)
Definition decoders.cpp:3505
void triggerSetup_Daihatsu(void)
Definition decoders.cpp:3407
uint16_t getRPM_Daihatsu(void)
Definition decoders.cpp:3507
uint16_t getRPM_BasicDistributor(void)
Definition decoders.cpp:1133
void triggerSec_BasicDistributor(void)
Definition decoders.cpp:1132
void triggerSetup_BasicDistributor(void)
Definition decoders.cpp:1054
void triggerSetEndTeeth_BasicDistributor(void)
Definition decoders.cpp:1179
int getCrankAngle_BasicDistributor(void)
Definition decoders.cpp:1152
void triggerPri_BasicDistributor(void)
Definition decoders.cpp:1077
void triggerSetup_420a(void)
Definition decoders.cpp:4023
uint16_t getRPM_420a(void)
Definition decoders.cpp:4139
int getCrankAngle_420a(void)
Definition decoders.cpp:4154
void triggerSetEndTeeth_420a(void)
Definition decoders.cpp:4179
void triggerSec_420a(void)
Definition decoders.cpp:4094
void triggerPri_420a(void)
Definition decoders.cpp:4055
void triggerPri_DualWheel(void)
Definition decoders.cpp:881
int getCrankAngle_DualWheel(void)
Definition decoders.cpp:978
void triggerSec_DualWheel(void)
Definition decoders.cpp:924
void triggerSetEndTeeth_DualWheel(void)
Definition decoders.cpp:1022
void triggerSetup_DualWheel(void)
Definition decoders.cpp:861
uint16_t getRPM_DualWheel(void)
Definition decoders.cpp:958
void triggerSetEndTeeth_FordST170(void)
Definition decoders.cpp:4443
void triggerSetup_FordST170(void)
Definition decoders.cpp:4311
void triggerSec_FordST170(void)
Definition decoders.cpp:4339
int getCrankAngle_FordST170(void)
Definition decoders.cpp:4404
uint16_t getRPM_FordST170(void)
Definition decoders.cpp:4386
void triggerPri_GM7X(void)
Definition decoders.cpp:1269
void triggerSetup_GM7X(void)
Definition decoders.cpp:1260
int getCrankAngle_GM7X(void)
Definition decoders.cpp:1333
void triggerSetEndTeeth_GM7X(void)
Definition decoders.cpp:1370
void triggerSec_GM7X(void)
Definition decoders.cpp:1328
uint16_t getRPM_GM7X(void)
Definition decoders.cpp:1329
void triggerSec_24X(void)
Definition decoders.cpp:1896
uint16_t getRPM_24X(void)
Definition decoders.cpp:1902
void triggerSetup_24X(void)
Definition decoders.cpp:1828
void triggerPri_24X(void)
Definition decoders.cpp:1864
int getCrankAngle_24X(void)
Definition decoders.cpp:1906
void triggerSetEndTeeth_24X(void)
Definition decoders.cpp:1936
int getCrankAngle_Harley(void)
Definition decoders.cpp:3663
void triggerSetEndTeeth_Harley(void)
Definition decoders.cpp:3695
void triggerSec_Harley(void)
Definition decoders.cpp:3622
uint16_t getRPM_Harley(void)
Definition decoders.cpp:3629
void triggerSetup_Harley(void)
Definition decoders.cpp:3569
void triggerPri_Harley(void)
Definition decoders.cpp:3580
void triggerPri_HondaD17(void)
Definition decoders.cpp:2180
uint16_t getRPM_HondaD17(void)
Definition decoders.cpp:2222
int getCrankAngle_HondaD17(void)
Definition decoders.cpp:2226
void triggerSec_HondaD17(void)
Definition decoders.cpp:2221
void triggerSetEndTeeth_HondaD17(void)
Definition decoders.cpp:2259
void triggerSetup_HondaD17(void)
Definition decoders.cpp:2171
int getCrankAngle_HondaJ32(void)
Definition decoders.cpp:2368
void triggerSetup_HondaJ32(void)
Definition decoders.cpp:2281
uint16_t getRPM_HondaJ32(void)
Definition decoders.cpp:2363
void triggerPri_HondaJ32(void)
Definition decoders.cpp:2299
void triggerSetEndTeeth_HondaJ32(void)
Definition decoders.cpp:2402
void triggerSec_HondaJ32(void)
Definition decoders.cpp:2358
void triggerSec_Jeep2000(void)
Definition decoders.cpp:2006
void triggerSetEndTeeth_Jeep2000(void)
Definition decoders.cpp:2042
uint16_t getRPM_Jeep2000(void)
Definition decoders.cpp:2012
void triggerPri_Jeep2000(void)
Definition decoders.cpp:1973
int getCrankAngle_Jeep2000(void)
Definition decoders.cpp:2016
void triggerSetup_Jeep2000(void)
Definition decoders.cpp:1949
void triggerSetEndTeeth_missingTooth(void)
Definition decoders.cpp:829
void triggerPri_missingTooth(void)
Definition decoders.cpp:526
void triggerThird_missingTooth(void)
Definition decoders.cpp:726
void triggerSec_missingTooth(void)
Definition decoders.cpp:645
uint16_t getRPM_missingTooth(void)
Definition decoders.cpp:758
int getCrankAngle_missingTooth(void)
Definition decoders.cpp:776
void triggerSetup_missingTooth(void)
Definition decoders.cpp:489
void triggerPri_4G63(void)
Definition decoders.cpp:1448
void triggerSetup_4G63(void)
Definition decoders.cpp:1394
void triggerSec_4G63(void)
Definition decoders.cpp:1636
uint16_t getRPM_4G63(void)
Definition decoders.cpp:1715
int getCrankAngle_4G63(void)
Definition decoders.cpp:1752
void triggerSetEndTeeth_4G63(void)
Definition decoders.cpp:1779
void triggerSetEndTeeth_Nissan360(void)
Definition decoders.cpp:3113
void triggerSetup_Nissan360(void)
Definition decoders.cpp:2908
void triggerSec_Nissan360(void)
Definition decoders.cpp:2963
int getCrankAngle_Nissan360(void)
Definition decoders.cpp:3083
void triggerPri_Nissan360(void)
Definition decoders.cpp:2922
uint16_t getRPM_Nissan360(void)
Definition decoders.cpp:3057
void triggerSetEndTeeth_non360(void)
Definition decoders.cpp:2898
void triggerPri_non360(void)
Definition decoders.cpp:2848
void triggerSetup_non360(void)
Definition decoders.cpp:2835
void triggerSec_non360(void)
Definition decoders.cpp:2853
int getCrankAngle_non360(void)
Definition decoders.cpp:2869
uint16_t getRPM_non360(void)
Definition decoders.cpp:2858
void triggerSetEndTeeth_Renix(void)
Definition decoders.cpp:5171
void triggerSetup_Renix(void)
Definition decoders.cpp:5049
void triggerPri_Renix(void)
Definition decoders.cpp:5085
void triggerSetEndTeeth_Subaru67(void)
Definition decoders.cpp:3360
uint16_t getRPM_Subaru67(void)
Definition decoders.cpp:3319
void triggerSetup_Subaru67(void)
Definition decoders.cpp:3133
void triggerSec_Subaru67(void)
Definition decoders.cpp:3281
void triggerPri_Subaru67(void)
Definition decoders.cpp:3162
int getCrankAngle_Subaru67(void)
Definition decoders.cpp:3332
void loggerPrimaryISR(void)
Definition decoders.cpp:210
void loggerTertiaryISR(void)
Definition decoders.cpp:269
void loggerSecondaryISR(void)
Definition decoders.cpp:244
int getCrankAngle_Vmax(void)
Definition decoders.cpp:5006
void triggerSetEndTeeth_Vmax(void)
Definition decoders.cpp:5032
void triggerSetup_Vmax(void)
Definition decoders.cpp:4847
void triggerPri_Vmax(void)
Definition decoders.cpp:4871
uint16_t getRPM_Vmax(void)
Definition decoders.cpp:4977
void triggerSec_Vmax(void)
Definition decoders.cpp:4970
void triggerPri_Webber(void)
Definition decoders.cpp:4203
void triggerSec_Webber(void)
Definition decoders.cpp:4254
void triggerSetup_RoverMEMS(void)
Definition decoders.cpp:5215
void triggerPri_RoverMEMS(void)
Definition decoders.cpp:5239
uint16_t getRPM_RoverMEMS(void)
Definition decoders.cpp:5520
void triggerSec_NGC68(void)
Definition decoders.cpp:4732
uint16_t getRPM_NGC(void)
Definition decoders.cpp:4787
void triggerSec_RoverMEMS(void)
Definition decoders.cpp:5438
void triggerPri_NGC(void)
Definition decoders.cpp:4566
void triggerSetEndTeeth_NGC(void)
Definition decoders.cpp:4821
int getCrankAngle_RoverMEMS(void)
Definition decoders.cpp:5410
void triggerSetup_NGC(void)
Definition decoders.cpp:4509
void triggerSetEndTeeth_RoverMEMS(void)
Definition decoders.cpp:5540
void triggerSec_NGC4(void)
Definition decoders.cpp:4680
static uint32_t rshift(uint32_t a)
Bitwise right shift - generic, unoptimized, case.
Definition bit_shifts.h:349
uint16_t getRPM_MazdaAU(void)
Definition decoders.cpp:2775
void triggerPri_MazdaAU(void)
Definition decoders.cpp:2706
void triggerSetEndTeeth_MazdaAU(void)
Definition decoders.cpp:2825
void triggerSec_MazdaAU(void)
Definition decoders.cpp:2743
int getCrankAngle_MazdaAU(void)
Definition decoders.cpp:2797
void triggerSetup_MazdaAU(void)
Definition decoders.cpp:2686
void triggerSetEndTeeth_Miata9905(void)
Definition decoders.cpp:2639
int getCrankAngle_Miata9905(void)
Definition decoders.cpp:2600
void triggerSec_Miata9905(void)
Definition decoders.cpp:2542
uint16_t getRPM_Miata9905(void)
Definition decoders.cpp:2568
void triggerPri_Miata9905(void)
Definition decoders.cpp:2455
void triggerSetup_Miata9905(void)
Definition decoders.cpp:2417
int getCamAngle_Miata9905(void)
Definition decoders.cpp:2628