![]() |
Speeduino
|
#include <stdint.h>#include "globals.h"#include "scheduler.h"#include "comms.h"#include "comms_legacy.h"#include "comms_secondary.h"#include "maths.h"#include "corrections.h"#include "timers.h"#include "decoders.h"#include "idle.h"#include "auxiliaries.h"#include "sensors.h"#include "storage.h"#include "crankMaths.h"#include "init.h"#include "programmableIOControl.h"#include "engineProtection.h"#include "secondaryTables.h"#include "comms_CAN.h"#include "SD_logger.h"#include "load_source.h"#include "board_definition.h"#include "unit_testing.h"#include <RTC_LIB_H>#include "units.h"#include "fuel_calcs.h"#include "preprocessor.h"#include "dwell.h"#include "decoder_init.h"#include "src/pins/pinMapping.h"#include "resetControl.h"#include "scheduler_ignition_controller.h"#include "src/controllers/launch/launchController.h"#include "src/controllers/fuelPump/fuelPumpController.h"#include "scheduler_fuel_controller.h"#include "src/controllers/tsCommand/tsCommandController.h"#include "src/controllers/fan/fanController.h"#include "src/controllers/boost/boostController.h"#include "src/controllers/aircon/airconController.h"#include "src/controllers/nitrous/nitrousController.h"Macros | |
| #define | CRANK_RUN_HYSTER 15 |
Variables | |
| constexpr table2D_u8_u8_10 idleTargetTable & | configPage6 |
Speeduino initialisation and main loop.
| #define CRANK_RUN_HYSTER 15 |
| BEGIN_LTO_ALWAYS_INLINE | ( | void | ) |
Speeduino main loop.
Main loop chores (roughly in the order that they are performed):
single byte variable currentStatus.LOOP_TIMER plays a big part here as:
Sometimes loop() is inlined by LTO & sometimes not When not inlined, there is a huge difference in stack usage: 60+ bytes That eats into available RAM. Adding attribute((always_inline)) forces the LTO process to inline.
Since the function is declared in an Arduino header, we can't change it to inline, so we need to suppress the resulting warning.

Lookup the ignition advance from 3D ignition table. The values used to look this up will be RPM and whatever load source the user has configured.


Lookup the current VE value from the primary 3D fuel map. The Y axis value used for this lookup varies based on the fuel algorithm selected (speed density, alpha-n etc).


|
inlinestatic |

|
static |


|
constexpr |