Speeduino
|
#include "globals.h"
#include "scheduler.h"
#include "scheduledIO.h"
#include "timers.h"
#include "schedule_calcs.h"
Injector and Ignition (on/off) scheduling (functions). There is usually 8 functions for cylinders 1-8 with same naming pattern.
Structures FuelSchedule and Schedule describe (from scheduler.h) describe the scheduling info for Fuel and Ignition respectively. They contain duration, current activity status, start timing, end timing, callbacks to carry out action, etc.
For Injection:
For Ignition (has more complex schedule setup):
void _setFuelScheduleNext | ( | FuelSchedule & | schedule, |
unsigned long | timeout, | ||
unsigned long | duration | ||
) |
void _setFuelScheduleRunning | ( | FuelSchedule & | schedule, |
unsigned long | timeout, | ||
unsigned long | duration | ||
) |
void _setIgnitionScheduleNext | ( | IgnitionSchedule & | schedule, |
unsigned long | timeout, | ||
unsigned long | duration | ||
) |
void _setIgnitionScheduleRunning | ( | IgnitionSchedule & | schedule, |
unsigned long | timeout, | ||
unsigned long | duration | ||
) |
Perform the injector priming pulses. Set these to run at an arbitrary time in the future (100us). The prime pulse value is in ms*10, so need to multiple by 100 to get to uS
void fuelSchedule1Interrupt | ( | ) |
fuelSchedule*Interrupt (All 8 ISR functions below) get called (as timed interrupts) when either the start time or the duration time are reached. This calls the relevant callback function (startCallback or endCallback) depending on the status (PENDING => Needs to run, RUNNING => Needs to stop) of the schedule. The status of schedule is managed here based on startCallback /endCallback function called:
void fuelSchedule2Interrupt | ( | ) |
void fuelSchedule3Interrupt | ( | ) |
void fuelSchedule4Interrupt | ( | ) |
|
inlinestatic |
|
inlinestatic |
< The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones)
< The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC
< The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC
< The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC
< The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones)
< The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC
< The number of crank degrees until cylinder 3 (and 5/6/7/8) is at TDC
< The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC
|
static |
|
static |
FuelSchedule fuelSchedule1(FUEL1_COUNTER, FUEL1_COMPARE, FUEL1_TIMER_DISABLE, FUEL1_TIMER_ENABLE) | ( | FUEL1_COUNTER | , |
FUEL1_COMPARE | , | ||
FUEL1_TIMER_DISABLE | , | ||
FUEL1_TIMER_ENABLE | |||
) |
FuelSchedule fuelSchedule2(FUEL2_COUNTER, FUEL2_COMPARE, FUEL2_TIMER_DISABLE, FUEL2_TIMER_ENABLE) | ( | FUEL2_COUNTER | , |
FUEL2_COMPARE | , | ||
FUEL2_TIMER_DISABLE | , | ||
FUEL2_TIMER_ENABLE | |||
) |
FuelSchedule fuelSchedule3(FUEL3_COUNTER, FUEL3_COMPARE, FUEL3_TIMER_DISABLE, FUEL3_TIMER_ENABLE) | ( | FUEL3_COUNTER | , |
FUEL3_COMPARE | , | ||
FUEL3_TIMER_DISABLE | , | ||
FUEL3_TIMER_ENABLE | |||
) |
FuelSchedule fuelSchedule4(FUEL4_COUNTER, FUEL4_COMPARE, FUEL4_TIMER_DISABLE, FUEL4_TIMER_ENABLE) | ( | FUEL4_COUNTER | , |
FUEL4_COMPARE | , | ||
FUEL4_TIMER_DISABLE | , | ||
FUEL4_TIMER_ENABLE | |||
) |
IgnitionSchedule ignitionSchedule1(IGN1_COUNTER, IGN1_COMPARE, IGN1_TIMER_DISABLE, IGN1_TIMER_ENABLE) | ( | IGN1_COUNTER | , |
IGN1_COMPARE | , | ||
IGN1_TIMER_DISABLE | , | ||
IGN1_TIMER_ENABLE | |||
) |
IgnitionSchedule ignitionSchedule2(IGN2_COUNTER, IGN2_COMPARE, IGN2_TIMER_DISABLE, IGN2_TIMER_ENABLE) | ( | IGN2_COUNTER | , |
IGN2_COMPARE | , | ||
IGN2_TIMER_DISABLE | , | ||
IGN2_TIMER_ENABLE | |||
) |
IgnitionSchedule ignitionSchedule3(IGN3_COUNTER, IGN3_COMPARE, IGN3_TIMER_DISABLE, IGN3_TIMER_ENABLE) | ( | IGN3_COUNTER | , |
IGN3_COMPARE | , | ||
IGN3_TIMER_DISABLE | , | ||
IGN3_TIMER_ENABLE | |||
) |
IgnitionSchedule ignitionSchedule4(IGN4_COUNTER, IGN4_COMPARE, IGN4_TIMER_DISABLE, IGN4_TIMER_ENABLE) | ( | IGN4_COUNTER | , |
IGN4_COMPARE | , | ||
IGN4_TIMER_DISABLE | , | ||
IGN4_TIMER_ENABLE | |||
) |
IgnitionSchedule ignitionSchedule5(IGN5_COUNTER, IGN5_COMPARE, IGN5_TIMER_DISABLE, IGN5_TIMER_ENABLE) | ( | IGN5_COUNTER | , |
IGN5_COMPARE | , | ||
IGN5_TIMER_DISABLE | , | ||
IGN5_TIMER_ENABLE | |||
) |