Speeduino
Loading...
Searching...
No Matches
Functions | Variables
scheduler.ino File Reference
#include "globals.h"
#include "scheduler.h"
#include "scheduledIO.h"
#include "timers.h"
#include "schedule_calcs.h"

Functions

void initialiseSchedulers (void)
 
void setFuelSchedule (struct Schedule *targetSchedule, unsigned long timeout, unsigned long duration)
 
void setFuelSchedule1 (unsigned long timeout, unsigned long duration)
 
void setFuelSchedule2 (unsigned long timeout, unsigned long duration)
 
void setFuelSchedule3 (unsigned long timeout, unsigned long duration)
 
void setFuelSchedule4 (unsigned long timeout, unsigned long duration)
 
void setIgnitionSchedule1 (void(*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
 
void refreshIgnitionSchedule1 (unsigned long timeToEnd)
 
void setIgnitionSchedule2 (void(*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
 
void setIgnitionSchedule3 (void(*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
 
void setIgnitionSchedule4 (void(*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
 
void setIgnitionSchedule5 (void(*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
 
void setIgnitionSchedule6 (void(*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
 
void setIgnitionSchedule7 (void(*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
 
void setIgnitionSchedule8 (void(*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
 
void beginInjectorPriming (void)
 
void disablePendingFuelSchedule (byte channel)
 
void disablePendingIgnSchedule (byte channel)
 

Variables

FuelSchedule fuelSchedule1
 
FuelSchedule fuelSchedule2
 
FuelSchedule fuelSchedule3
 
FuelSchedule fuelSchedule4
 
FuelSchedule fuelSchedule5
 
FuelSchedule fuelSchedule6
 
FuelSchedule fuelSchedule7
 
FuelSchedule fuelSchedule8
 
Schedule ignitionSchedule1
 
Schedule ignitionSchedule2
 
Schedule ignitionSchedule3
 
Schedule ignitionSchedule4
 
Schedule ignitionSchedule5
 
Schedule ignitionSchedule6
 
Schedule ignitionSchedule7
 
Schedule ignitionSchedule8
 
void(* inj1StartFunction )(void)
 
void(* inj1EndFunction )(void)
 
void(* inj2StartFunction )(void)
 
void(* inj2EndFunction )(void)
 
void(* inj3StartFunction )(void)
 
void(* inj3EndFunction )(void)
 
void(* inj4StartFunction )(void)
 
void(* inj4EndFunction )(void)
 
void(* ign1StartFunction )(void)
 
void(* ign1EndFunction )(void)
 
void(* ign2StartFunction )(void)
 
void(* ign2EndFunction )(void)
 
void(* ign3StartFunction )(void)
 
void(* ign3EndFunction )(void)
 
void(* ign4StartFunction )(void)
 
void(* ign4EndFunction )(void)
 
void(* ign5StartFunction )(void)
 
void(* ign5EndFunction )(void)
 
void(* ign6StartFunction )(void)
 
void(* ign6EndFunction )(void)
 
void(* ign7StartFunction )(void)
 
void(* ign7EndFunction )(void)
 
void(* ign8StartFunction )(void)
 
void(* ign8EndFunction )(void)
 

Detailed Description

Injector and Ignition (on/off) scheduling (functions). There is usually 8 functions for cylinders 1-8 with same naming pattern.

Scheduling structures

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.

Scheduling Functions

For Injection:

For Ignition (has more complex schedule setup):

Function Documentation

◆ beginInjectorPriming()

void beginInjectorPriming ( void  )

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ disablePendingFuelSchedule()

void disablePendingFuelSchedule ( byte  channel)

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:

  • startCallback - change scheduler into RUNNING state
  • endCallback - change scheduler into OFF state (or PENDING if schedule.hasNextSchedule is set)
Here is the caller graph for this function:

◆ disablePendingIgnSchedule()

void disablePendingIgnSchedule ( byte  channel)
Here is the caller graph for this function:

◆ initialiseSchedulers()

void initialiseSchedulers ( void  )

< 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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ refreshIgnitionSchedule1()

void refreshIgnitionSchedule1 ( unsigned long  timeToEnd)
inline
Here is the caller graph for this function:

◆ setFuelSchedule()

void setFuelSchedule ( struct Schedule targetSchedule,
unsigned long  timeout,
unsigned long  duration 
)

◆ setFuelSchedule1()

void setFuelSchedule1 ( unsigned long  timeout,
unsigned long  duration 
)
Here is the caller graph for this function:

◆ setFuelSchedule2()

void setFuelSchedule2 ( unsigned long  timeout,
unsigned long  duration 
)
Here is the caller graph for this function:

◆ setFuelSchedule3()

void setFuelSchedule3 ( unsigned long  timeout,
unsigned long  duration 
)
Here is the caller graph for this function:

◆ setFuelSchedule4()

void setFuelSchedule4 ( unsigned long  timeout,
unsigned long  duration 
)
Here is the caller graph for this function:

◆ setIgnitionSchedule1()

void setIgnitionSchedule1 ( void(*)()  startCallback,
unsigned long  timeout,
unsigned long  duration,
void(*)()  endCallback 
)
Here is the caller graph for this function:

◆ setIgnitionSchedule2()

void setIgnitionSchedule2 ( void(*)()  startCallback,
unsigned long  timeout,
unsigned long  duration,
void(*)()  endCallback 
)
Here is the caller graph for this function:

◆ setIgnitionSchedule3()

void setIgnitionSchedule3 ( void(*)()  startCallback,
unsigned long  timeout,
unsigned long  duration,
void(*)()  endCallback 
)
Here is the caller graph for this function:

◆ setIgnitionSchedule4()

void setIgnitionSchedule4 ( void(*)()  startCallback,
unsigned long  timeout,
unsigned long  duration,
void(*)()  endCallback 
)
Here is the caller graph for this function:

◆ setIgnitionSchedule5()

void setIgnitionSchedule5 ( void(*)()  startCallback,
unsigned long  timeout,
unsigned long  duration,
void(*)()  endCallback 
)
Here is the caller graph for this function:

◆ setIgnitionSchedule6()

void setIgnitionSchedule6 ( void(*)()  startCallback,
unsigned long  timeout,
unsigned long  duration,
void(*)()  endCallback 
)
Here is the caller graph for this function:

◆ setIgnitionSchedule7()

void setIgnitionSchedule7 ( void(*)()  startCallback,
unsigned long  timeout,
unsigned long  duration,
void(*)()  endCallback 
)
Here is the caller graph for this function:

◆ setIgnitionSchedule8()

void setIgnitionSchedule8 ( void(*)()  startCallback,
unsigned long  timeout,
unsigned long  duration,
void(*)()  endCallback 
)
Here is the caller graph for this function:

Variable Documentation

◆ fuelSchedule1

FuelSchedule fuelSchedule1

◆ fuelSchedule2

FuelSchedule fuelSchedule2

◆ fuelSchedule3

FuelSchedule fuelSchedule3

◆ fuelSchedule4

FuelSchedule fuelSchedule4

◆ fuelSchedule5

FuelSchedule fuelSchedule5

◆ fuelSchedule6

FuelSchedule fuelSchedule6

◆ fuelSchedule7

FuelSchedule fuelSchedule7

◆ fuelSchedule8

FuelSchedule fuelSchedule8

◆ ign1EndFunction

void(* ign1EndFunction) (void) ( void  )

◆ ign1StartFunction

void(* ign1StartFunction) (void) ( void  )

◆ ign2EndFunction

void(* ign2EndFunction) (void) ( void  )

◆ ign2StartFunction

void(* ign2StartFunction) (void) ( void  )

◆ ign3EndFunction

void(* ign3EndFunction) (void) ( void  )

◆ ign3StartFunction

void(* ign3StartFunction) (void) ( void  )

◆ ign4EndFunction

void(* ign4EndFunction) (void) ( void  )

◆ ign4StartFunction

void(* ign4StartFunction) (void) ( void  )

◆ ign5EndFunction

void(* ign5EndFunction) (void) ( void  )

◆ ign5StartFunction

void(* ign5StartFunction) (void) ( void  )

◆ ign6EndFunction

void(* ign6EndFunction) (void) ( void  )

◆ ign6StartFunction

void(* ign6StartFunction) (void) ( void  )

◆ ign7EndFunction

void(* ign7EndFunction) (void) ( void  )

◆ ign7StartFunction

void(* ign7StartFunction) (void) ( void  )

◆ ign8EndFunction

void(* ign8EndFunction) (void) ( void  )

◆ ign8StartFunction

void(* ign8StartFunction) (void) ( void  )

◆ ignitionSchedule1

Schedule ignitionSchedule1

◆ ignitionSchedule2

Schedule ignitionSchedule2

◆ ignitionSchedule3

Schedule ignitionSchedule3

◆ ignitionSchedule4

Schedule ignitionSchedule4

◆ ignitionSchedule5

Schedule ignitionSchedule5

◆ ignitionSchedule6

Schedule ignitionSchedule6

◆ ignitionSchedule7

Schedule ignitionSchedule7

◆ ignitionSchedule8

Schedule ignitionSchedule8

◆ inj1EndFunction

void(* inj1EndFunction) (void) ( void  )

◆ inj1StartFunction

void(* inj1StartFunction) (void) ( void  )

◆ inj2EndFunction

void(* inj2EndFunction) (void) ( void  )

◆ inj2StartFunction

void(* inj2StartFunction) (void) ( void  )

◆ inj3EndFunction

void(* inj3EndFunction) (void) ( void  )

◆ inj3StartFunction

void(* inj3StartFunction) (void) ( void  )

◆ inj4EndFunction

void(* inj4EndFunction) (void) ( void  )

◆ inj4StartFunction

void(* inj4StartFunction) (void) ( void  )