RabbitECUTeensyMCUXpresso/source/Client/IAC.h

68 lines
2.2 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: Idle Air Control Header File */
/* DESCRIPTION: This code module initialises the required */
/* resources and functions for idle air control */
/* */
/* FILE NAME: IAC.c */
/* REVISION HISTORY: 28-03-2016 | 1.0 | Initial revision */
/* */
/******************************************************************************/
#ifndef IAC_H
#define IAC_H
#include <string.h>
#include "CTS.h"
#include "TPS.h"
#include "IOAPI.h"
#include "SETUP.h"
#include "USER.h"
/* GLOBAL MACRO DEFINITIONS ***************************************************/
#ifdef EXTERN
#undef EXTERN
#endif
#ifdef _IAC_C
#define EXTERN
#else
#define EXTERN extern
#endif
#define IAC_LEARN_COUNTS 400
/* GLOBAL TYPE DEFINITIONS ****************************************************/
typedef enum
{
IAC_enResetHome,
IAC_enNormal
} IAC_tenStepperState;
typedef enum
{
IAC_enOpenLoop,
IAC_enClosedLoop
} IAC_tenControlState;
/* GLOBAL VARIABLE DECLARATIONS ***********************************************/
EXTERN uint32 IAC_u32ISCDuty;
//ASAM mode=readvalue name="IAC Duty" type=uint32 offset=0 min=0 max=100 m=0.024 b=0 units="%" format=4.1 help="IAC Duty Position"
EXTERN IAC_tenControlState IAC_enControlState;
EXTERN bool IAC_boOverrunCutRPMEnable;
EXTERN sint32 IAC_s32ISCESTTrim[2];
EXTERN uint8 IAC_u8SlaveTarget;
/* GLOBAL FUNCTION DECLARATIONS ***********************************************/
void IAC_vStart(uint32 * const pu32Arg);
void IAC_vRun(uint32* const pu32Arg);
void IAC_vTerminate(uint32* const pu32Arg);
void IAC_vCallBack(puint32 const pu32Arg);
#endif // MAP_H