RabbitECUTeensyMCUXpresso/source/Client/FUEL.h

92 lines
4.3 KiB
C

/******************************************************************************/
/* Copyright (c) 2016 MD Automotive Controls. Original Work. */
/* License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher */
/******************************************************************************/
/* CONTEXT:USER_APP */
/* PACKAGE TITLE: Fuelling Header File */
/* DESCRIPTION: This code module initialises the required */
/* resources and functions for fuelling calculations */
/* measurement */
/* FILE NAME: FUEL.c */
/* REVISION HISTORY: 28-03-2016 | 1.0 | Initial revision */
/* */
/******************************************************************************/
#ifndef FUEL_H
#define FUEL_H
#include <string.h>
#include "cpuabstract.h"
#include "declarations.h"
#include "CLO2.h"
#include "IOAPI.h"
#include "SPREADSAPI.h"
#include "TABLESAPI.h"
#include "sensors.h"
#include "TEPM.h"
#include "USER.h"
/* GLOBAL MACRO DEFINITIONS ***************************************************/
#define FUEL_xUsToSlowTicks(x) (((SENSORS_nSlowFTMFreq / 100u) * (x)) / 10000u)
#define FUEL_nEngineCap (1400)
#define FUEL_nInjRespCalcRate (4)
#define FUEL_nInj4Output EH_IO_ADD8
#define FUEL_nInj3Output EH_IO_TMR10
#define FUEL_nInj2Output EH_IO_TMR11
#define FUEL_nInj1Output EH_IO_EXTINT
#define FUEL_nShortPulseRangeUs 2000
#define FUEL_nXAFMAxisRef AFM_tSensorHertz
#define FUEL_nFuelSequenceCount 4
#define FUEL_nSeqModeCountLimit 10
#define FUEL_nSampleCount 5
#ifdef EXTERN
#undef EXTERN
#endif
#ifdef _FUEL_C
#define EXTERN
#else
#define EXTERN extern
#endif
/* GLOBAL VARIABLE DECLARATIONS ***********************************************/
EXTERN TEPMAPI_ttEventTime FUEL_tStartHoldFraction[8];
EXTERN TEPMAPI_ttEventTime FUEL_tStartFPSolenoidDelay;
EXTERN TEPMAPI_ttEventTime FUEL_tStartFPSolenoidPeak;
EXTERN TEPMAPI_ttEventTime FUEL_tStartFPSolenoidDutyHigh;
EXTERN TEPMAPI_ttEventTime FUEL_tStartFPSolenoidDutyLow;
EXTERN TEPMAPI_ttEventTime FUEL_tFPAccumulate;
EXTERN TEPMAPI_ttEventTime FUEL_tTimeHold[8];
EXTERN GPM6_ttPulseUs FUEL_tTimeHoldUs[8];
//ASAM mode=readvalue name="Fuel Injector Hold ms" type=uint32 offset=0 min=0 max=40 m=0.001 b=0 units="ms" format=5.3 help="Fuel Injector Total ms"
EXTERN GPM6_ttCc FUEL_tMaxAirFlow;
EXTERN GPM6_ttMcc FUEL_tPredictedAirFlowMcc;
EXTERN GPM6_ttUg FUEL_tPredictedAirFlowUg;
EXTERN GPM6_ttG FUEL_tPredictedFuelFlowUg;
EXTERN GPM6_ttG FUEL_tPredictedFuelFlowPerInjectionNg[2];
//ASAM mode=readvalue name="Fuel Injector Predicted ms" type=uint32 offset=0 min=0 max=40 m=0.001 b=0 units="ms" format=5.3 help="Fuel Injector Predicted ms"
EXTERN volatile GPM6_ttPulseUs FUEL_tTimePredictedUs[2];
EXTERN volatile GPM6_ttPulseUs FUEL_tTimePredictedUsInput;
EXTERN volatile GPM6_ttPulseUs FUEL_tTimePredictedShortOpeningUs;
EXTERN bool FUEL_boFuelPrimed;
EXTERN bool FUEL_u32PrimeCBCount;
EXTERN uint16 FUEL_u16TAFR;
EXTERN bool FUEL_aboSeqRevCutFlag[8];
EXTERN bool FUEL_aboSeqOverrunCutFlag[8];
EXTERN bool FUEL_aboFMECutFlag[8];
EXTERN uint32 FUEL_u32FuelConsumed;
EXTERN uint32 FUEL_u32ADSamples[FUEL_nSampleCount];
EXTERN GPM6_ttPa FUEL_tKiloPaFiltered;
//ASAM mode=readvalue name="Fuel Rail kPa" type=uint32 offset=0 min=0 max=35000 m=1 b=0 units="kPa" format=5.3 help="Fuel Rail Pressure"
EXTERN bool FUEL_boFuelPumpOn;
//ASAM mode=readvalue name="Fuel Pump On" type=uint8 offset=0 min=0 max=1 m=1 b=0 units="bool" format=5.3 help="Fuel Pump On"
EXTERN uint16 FUEL_u16FuelCutsPercent;
/* GLOBAL FUNCTION DECLARATIONS ***********************************************/
void FUEL_vStart(uint32 * const pu32Arg);
void FUEL_vRun(uint32* const pu32Arg);
void FUEL_vTerminate(uint32* const pu32Arg);
void FUEL_vCallBack(puint32 const pu32Arg);
void FUEL_vCalculateFuellingValues(void);
#endif // FUEL_H