Speeduino
Loading...
Searching...
No Matches
scheduler_ignition_controller.h
Go to the documentation of this file.
1#pragma once
2#include "scheduler.h"
3#include "config_pages.h"
4#include "statuses.h"
5
7#if IGN_CHANNELS >= 2
8extern IgnitionSchedule ignitionSchedule2;
9#endif
10#if IGN_CHANNELS >= 3
11extern IgnitionSchedule ignitionSchedule3;
12#endif
13#if IGN_CHANNELS >= 4
14extern IgnitionSchedule ignitionSchedule4;
15#endif
16#if IGN_CHANNELS >= 5
17extern IgnitionSchedule ignitionSchedule5;
18#endif
19#if IGN_CHANNELS >= 6
20extern IgnitionSchedule ignitionSchedule6;
21#endif
22#if IGN_CHANNELS >= 7
23extern IgnitionSchedule ignitionSchedule7;
24#endif
25#if IGN_CHANNELS >= 8
26extern IgnitionSchedule ignitionSchedule8;
27#endif
28
39
49
57void setIgnitionChannels(const statuses &current, uint16_t crankAngle, uint16_t dwellTime);
58
61
63void stopIgnitionSchedulers(void);
64
67
69void stopAllCoilsCharging(void);
The tune page structs and related defines.
const config2 & page2
Definition engineProtection.cpp:438
const config4 & page4
Definition engineProtection.cpp:155
const config4 const config6 const config9 const config10 & page10
Definition engineProtection.cpp:156
static fastOutputPin_t pins[_countof(coil_pins_t::_M_elems)]
Definition scheduledIO_direct_ign.cpp:10
const config2 const config4 const config6 statuses & current
Definition scheduler_fuel_controller.cpp:506
uint16_t crankAngle
Definition scheduler_ignition_controller.cpp:695
const config4 const config13 & page13
Definition scheduler_ignition_controller.cpp:657
uint16_t uint16_t dwellTime
Definition scheduler_ignition_controller.cpp:695
void startIgnitionSchedulers(void)
Start the timers that drive schedulers
Definition scheduler_ignition_controller.cpp:781
void calculateIgnitionAngles(const config2 &page2, const config4 &page4, const config13 &page13, 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 initialiseIgnitionSchedules(statuses &current, const config2 &page2, config4 &page4, const config10 &page10, const pinNumbers_t &pins)
Initialise all ignition schedules.
Definition scheduler_ignition_controller.cpp:468
void stopIgnitionSchedulers(void)
Stop the timers that drive schedulers
Definition scheduler_ignition_controller.cpp:807
IgnitionSchedule ignitionSchedule1
void stopAllCoilsCharging(void)
Utility function to stop charging all ignition coils.
Definition scheduler_ignition_controller.cpp:257
void applyOverDwellProtection(const config4 &page4, const statuses &current)
Check that no ignition channel has been charging the coil for too long.
Definition scheduler_ignition_controller.cpp:750
The statuses struct and related defines.
An ignition schedule.
Definition scheduler.h:178
Definition config_pages.h:649
Definition config_pages.h:845
Definition config_pages.h:175
Definition config_pages.h:355
Store the pin assignments, as defined by the board.
Definition pinNumbers_t.h:41
The status struct with current values for all 'live' variables.
Definition statuses.h:47