Speeduino
Loading...
Searching...
No Matches
Functions | Variables
scheduler_ignition_controller.h File Reference
#include "scheduler.h"
#include "config_pages.h"
#include "statuses.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void applyOverDwellProtection (const config4 &page4, const statuses &current)
 Check that no ignition channel has been charging the coil for too long.
 
void calculateIgnitionAngles (const config2 &page2, const config4 &page4, statuses &current)
 Calculate the charge & discharge angles for all ignition channels.
 
void setIgnitionChannels (const statuses &current, uint16_t crankAngle, uint16_t dwellTime)
 Schedule all ignition channels.
 
void startIgnitionSchedulers (void)
 Start the timers that drive schedulers

 
void stopIgnitionSchedulers (void)
 Stop the timers that drive schedulers

 
void initialiseIgnitionSchedules (uint8_t sparkMode, uint8_t numCylinders, uint8_t rotaryMode)
 Initialise all ignition schedules.
 

Variables

IgnitionSchedule ignitionSchedule1
 
IgnitionSchedule ignitionSchedule2
 
IgnitionSchedule ignitionSchedule3
 
IgnitionSchedule ignitionSchedule4
 
IgnitionSchedule ignitionSchedule5
 

Function Documentation

◆ applyOverDwellProtection()

void applyOverDwellProtection ( const config4 page4,
const statuses current 
)

Check that no ignition channel has been charging the coil for too long.

The over dwell protection system runs independently of the standard ignition schedules and monitors the time that each ignition output has been active. If the active time exceeds the tune defined amount, the output will be ended to prevent damage to coils.

Note
Must be called once per millisecond by an external timer.
Here is the caller graph for this function:

◆ calculateIgnitionAngles()

void calculateIgnitionAngles ( const config2 page2,
const config4 page4,
statuses current 
)

Calculate the charge & discharge angles for all ignition channels.

Parameters
page2The tune
page4The tune
currentCurrent system state

◆ initialiseIgnitionSchedules()

void initialiseIgnitionSchedules ( uint8_t  sparkMode,
uint8_t  numCylinders,
uint8_t  rotaryMode 
)

Initialise all ignition schedules.

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

◆ setIgnitionChannels()

void setIgnitionChannels ( const statuses current,
uint16_t  crankAngle,
uint16_t  dwellTime 
)

Schedule all ignition channels.

Parameters
currentCurrent system state
crankAngleCrank angle
dwellTimeTarget dwell time
Here is the caller graph for this function:

◆ startIgnitionSchedulers()

void startIgnitionSchedulers ( void  )

Start the timers that drive schedulers

Here is the caller graph for this function:

◆ stopIgnitionSchedulers()

void stopIgnitionSchedulers ( void  )

Stop the timers that drive schedulers

Variable Documentation

◆ ignitionSchedule1

IgnitionSchedule ignitionSchedule1
extern

◆ ignitionSchedule2

IgnitionSchedule ignitionSchedule2
extern

◆ ignitionSchedule3

IgnitionSchedule ignitionSchedule3
extern

◆ ignitionSchedule4

IgnitionSchedule ignitionSchedule4
extern

◆ ignitionSchedule5

IgnitionSchedule ignitionSchedule5
extern