1 /* FreeEMS - the open source engine management system
3 * Copyright 2008-2011 Fred Cooke
5 * This file is part of the FreeEMS project.
7 * FreeEMS software is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * FreeEMS software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with any FreeEMS software. If not, see http://www.gnu.org/licenses/
20 * We ask that if you make any changes to this file you email them upstream to
21 * us at admin(at)diyefi(dot)org or, even better, fork the code on github.com!
23 * Thank you for choosing FreeEMS to run your engine!
29 * @ingroup interruptHandlers
30 * @ingroup enginePositionRPMDecoders
32 * @brief Reads any signal that is once per cylinder and only has one good edge.
34 * This file contains the two interrupt service routines required for to build
35 * cleanly. However, only the first one is used due to the simple nature of it.
39 #define DECODER_IMPLEMENTATION_C
40 #define DECODER_MAX_CODE_TIME 100 // To be optimised (shortened)!
41 #define NUMBER_OF_REAL_EVENTS 1
42 #define NUMBER_OF_VIRTUAL_EVENTS 4
44 #include "../inc/freeEMS.h"
45 #include "../inc/interrupts.h"
46 #include "../inc/decoderInterface.h"
47 #include "../inc/utils.h"
49 void decoderInitPreliminary(){} // This decoder works with the defaults
50 void perDecoderReset(){} // Nothing special to reset for this code
52 const unsigned short eventAngles
[] = {0,180,360,540};
53 const unsigned char eventValidForCrankSync
[] = {0,0,0,0};
56 #include "../inc/defaultPrimaryRPMISR.c"
57 #include "../inc/defaultSecondaryRPMISR.c"