47#define USE_IGN_REFRESH
48#define IGNITION_REFRESH_THRESHOLD 30
#define FUEL1_COUNTER
Definition board_avr2560.h:79
uint16_t COMPARE_TYPE
The timer overflow type.
Definition board_avr2560.h:33
#define FUEL1_COMPARE
Definition board_avr2560.h:97
constexpr uint32_t MAX_TIMER_PERIOD
The longest period of time (in uS) that the timer can permit.
Definition board_definition.h:91
uint32_t angleToTimeMicroSecPerDegree(uint16_t angle)
return flags
Definition engineProtection.cpp:170
int CRANK_ANGLE_MAX_IGN
Definition globals.cpp:42
int CRANK_ANGLE_MAX_INJ
The number of crank degrees that the system track over. Typically 720 divided by the number of squirt...
Definition globals.cpp:43
static TIntegral readSerialIntegralTimeout(void)
Reads an integral type, timing out if necessary.
Definition comms.cpp:175
void moveToNextState(IgnitionSchedule &schedule)
Shared ignition schedule timer ISR implementation. Should be called by the actual ignition timer ISRs...
Definition scheduler.cpp:443
void startIgnitionSchedulers(void)
Definition scheduler.cpp:177
static void nullCallback(void)
A scheduler callback that does nothing.
Definition scheduler.h:80
static void setIgnitionSchedule(IgnitionSchedule &schedule, uint32_t delay, uint16_t duration)
Set the ignition schedule action (charge & fire a coil) to run for a certain duration in the future.
Definition scheduler.h:186
static void setFuelSchedule(FuelSchedule &schedule, uint32_t delay, uint16_t duration)
Set the fuel schedule action (open & close an injector) to run for a certain duration in the future.
Definition scheduler.h:232
void stopIgnitionSchedulers(void)
Definition scheduler.cpp:203
IgnitionSchedule ignitionSchedule5
FuelSchedule fuelSchedule3
void refreshIgnitionSchedule1(unsigned long timeToEnd)
Definition scheduler.cpp:325
void setCallbacks(Schedule &schedule, Schedule::callback pStartCallback, Schedule::callback pEndCallback)
Set the schedule action start & end callbacks.
Definition scheduler.cpp:270
void startFuelSchedulers(void)
Definition scheduler.cpp:230
void initialiseFuelSchedulers(void)
Definition scheduler.cpp:83
FuelSchedule fuelSchedule4
IgnitionSchedule ignitionSchedule1
FuelSchedule fuelSchedule1
void stopFuelSchedulers(void)
Definition scheduler.cpp:250
IgnitionSchedule ignitionSchedule4
static bool isRunning(const Schedule &schedule)
Is the schedule action currently running?
Definition scheduler.h:142
FuelSchedule fuelSchedule2
void beginInjectorPriming(void)
Definition scheduler.cpp:343
ScheduleStatus
The current state of a schedule.
Definition scheduler.h:66
@ RUNNING
Definition scheduler.h:74
@ PENDING
Definition scheduler.h:72
@ RUNNING_WITHNEXT
Definition scheduler.h:76
@ OFF
Definition scheduler.h:70
void setSchedule(Schedule &schedule, uint32_t delay, uint16_t duration, bool allowQueuedSchedule)
Set the schedule action to run for a certain duration in the future.
Definition scheduler.cpp:303
void initialiseIgnitionSchedulers(void)
Definition scheduler.cpp:120
IgnitionSchedule ignitionSchedule3
IgnitionSchedule ignitionSchedule2
Definition scheduler.h:219
Definition scheduler.h:170
volatile unsigned long startTime
Definition scheduler.h:175
volatile COMPARE_TYPE endCompare
The counter value of the timer when this will end.
Definition scheduler.h:174
volatile bool endScheduleSetByDecoder
Definition scheduler.h:176
A schedule for a single output channel.
Definition scheduler.h:101
COMPARE_TYPE nextStartCompare
Planned start of next schedule (when current schedule is RUNNING)
Definition scheduler.h:135
counter_t & _counter
Reference to the counter register. E.g. TCNT3
Definition scheduler.h:137
callback pStartCallback
Start Callback function for schedule.
Definition scheduler.h:133
volatile COMPARE_TYPE duration
Scheduled duration (timer ticks)
Definition scheduler.h:131
volatile ScheduleStatus Status
Schedule status: OFF, PENDING, STAGED, RUNNING.
Definition scheduler.h:132
void(*)(void) callback
Definition scheduler.h:122
constexpr Schedule(counter_t &counter, compare_t &compare)
Construct a new Schedule object.
Definition scheduler.h:116
decltype(FUEL1_COUNTER) counter_t
The type of a timer counter register (this varies between platforms)
Definition scheduler.h:106
callback pEndCallback
End Callback function for schedule.
Definition scheduler.h:134
compare_t & _compare
**Reference**to the compare register. E.g. OCR3A
Definition scheduler.h:138
decltype(FUEL1_COMPARE) compare_t
The type of a timer compare register (this varies between platforms)
Definition scheduler.h:108