⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commondefine.h

📁 基于16位单片机的符合osek标准的操作系统
💻 H
📖 第 1 页 / 共 4 页
字号:
/**************************************************************************/
/* FILE NAME: commondefine.h                      COPYRIGHT (c) MOTOROLA 1999 */
/* VERSION:  1.1                                                          */
/*                                                                        */
/* DESCRIPTION:                                                            */
/* This file defines all of the data types for the family. It also        */
/* defines compiler specific paramaters. This file is included by all     */
/* individual modules.                                                    */
/*========================================================================*/
/* AUTHOR: kyle kong                                                      */
/* COMPILER: Diab Data        VERSION: 4.2b                               */
/*                                                                        */
/* UPDATE HISTORY                                                         */
/* REV      AUTHOR      DATE       DESCRIPTION OF CHANGE                  */
/* ---   -----------  ---------    ---------------------                  */
/* 1.0   kyle kong    112905     initialization files.                    */
/**************************************************************************/
//#include "com_typedefine.h"
#include "typedefine.h"
#if defined(commondefine)
	#define	EXTERN
#else
	#define	EXTERN	extern  						 
#endif

#define sqr372

#define bool int 
#define true 1
#define false 0  
#define Engine_Stop 0
#define Engine_Start 1
#define Engine_Running 2
#define NON_Running 0
#define Idle 1 
#define PartLoad 2
#define FullLoad 3 
#define KEY PTIH_PTIH7
#define MAINRELAY PORTE_BIT2
#define PT6 PTH_PTH6
#define OFF 0 
#define ON 1




extern void McuInit(void);
//Initialize system 40MHz

//Initialize SCI 
extern void CANInit(void);
//Initialize CAN
extern void RTIInit(void); 
//Initialize Real time interrupt
extern void MC33389Can(void);
//Canint for MC33389
extern void SysParametersInit(void);
extern void Sqr480_MasterIgnTiming(void); 
extern void Sqr480_SlaveIgnTiming(void);
extern void Sqr480_IGNandINJ_Trig(void);
extern void Sqr480_InjTiming(void);
extern void Sqr372_IgnTiming(void);
extern void Sqr372_InjTiming(void);
extern void Sqr372_IgnInjTrig(void);
extern void Fuel(void);
extern void InjAdvAngle(void);
extern void Advance(void);
 


extern void CW(void);
extern void CCW(void);
extern void InitIdle(void);
extern void SEEK(void);
extern void isc_move(void);
extern void O2CloseLoop(void) ; 
extern void OxygenHotup(void);



/****************诊断信息读取及存储****************************/
extern void DTCTable(void);
extern void MILControl(void);
extern void StatusOfControlSystem(void);
extern void EepromSave(void);   
extern void FlashSave(void);              

EXTERN UINT16 MC33389_can_delay;
 
//Receved Data to modify data pool
EXTERN INT8 G_n8CANSend;
//Receved Data to modify data pool
EXTERN void CANRW(void);
EXTERN 	unsigned char	G_un8CAN0RXIDR0; 
EXTERN 	unsigned char	G_un8CAN0RXIDR1;
EXTERN 	unsigned char	G_un8CAN0RXIDR2;
EXTERN 	unsigned char	G_un8CAN0RXIDR3;
EXTERN 	unsigned char	G_un8CAN0RXDSR0;
EXTERN 	unsigned char	G_un8CAN0RXDSR1;
EXTERN 	unsigned char	G_un8CAN0RXDSR2;
EXTERN 	unsigned char	G_un8CAN0RXDSR3;
EXTERN 	unsigned char	G_un8CAN0RXDSR4;
EXTERN 	unsigned char	G_un8CAN0RXDSR5;
EXTERN 	unsigned char	G_un8CAN0RXDSR6;
EXTERN 	unsigned char	G_un8CAN0RXDSR7;





#define OFF 0
#define ON  1
#define NEXTOFF 2
#define NEXTON 3

#define MODE_STOP 0   
#define MODE_START 1
#define MODE_IDLE 2
#define MODE_NORMAL 3
#define MODE_SPEEDLIMIT 4
#define MODE_OVERSPEED 9
/*used to difne the compress TDC and exhaust TDC 
 of the cylinder1# for SQR480 engine*/
#define	Cyl1ExhTDC		82
#define Cyl1CompTDC		22  


//used to difne the compress TDC of the cylinder1# for DieselEngine
#define CompTDC_Cylinder1		600//equal to 60 radian
#define CompTDC_Offset			CompTDC_Cylinder1%60	
#define CRK_CompTDC_Cyl1 		CompTDC_Cylinder1/60

#define CompTDC_CAM				1
#define CompTDC_Offset_CAM		450//equal to 60 radian


/************************system *************************/
/****************main.c**************************************************/
EXTERN unsigned char G_u8Timer[20];//8bit software timer,steps=1ms
EXTERN unsigned int G_u16Timer[20];//16bit software timer,steps=1ms
EXTERN unsigned int G_u32Timer[20];//long software timer,steps=1ms,the max timing is 49days

EXTERN unsigned char Engine_State,Engine_LastState;//R//	0--Engine_Stop;1--Engine_Start;2--Engine_Running
EXTERN unsigned char Engine_Mode,Engine_LastMode;//R//	0--Idle;1--PartLoad;2--FullLoad
EXTERN unsigned int G_u16StartInj_N;//R/W	start injection speed limted,user calibrated 
EXTERN unsigned long G_u32WorkCycCount;//R	//record the work circles of theb engine current running	   
EXTERN unsigned char G_bIgnKey;//R	ignition key state
/****************crank signal and CAM signal process ******************/     
EXTERN unsigned int G_u16CrankGear_W;//R	the current crank gear pulse width
EXTERN unsigned int G_u16CrankGear_W0;//the last crank gear pulse width
EXTERN unsigned int G_u16Avr_W;//the avrage of the crank gears
EXTERN unsigned int G_u16Avr_W0;//the last avrage of the crank gears
EXTERN int G_n16dAvr_W;
EXTERN unsigned char G_u8CrankGear_SN;//R	the serial number for the crank gear
#ifdef sqr480
EXTERN unsigned int G_u16ArrayCrank_W[30];//the crank gear width array
EXTERN unsigned int G_u16ArrayIntake_P[30];//the intake manifold pressure array
 
#else
EXTERN unsigned int G_u16ArrayCrank_W[40];//the crank gear width array
EXTERN unsigned int G_u16ArrayIntake_P[40];//the intake manifold pressure array
#endif
EXTERN unsigned char un8_CrankIndex; 
EXTERN unsigned long G_u16Sum_W;//the sum of the crank gear width
EXTERN unsigned int G_u16N;//R	engine real time speed
EXTERN unsigned int G_u16N0;//the speed of the last 60degree crankshaft angle
EXTERN int G_n16dN;//R	
EXTERN int G_n16dN0;

EXTERN unsigned int G_u16CrankGearW_SN30;//R	the NO.30 gear's width
EXTERN unsigned int G_u16CrankGearW_SN60;//R	the NO.60 gear's width
EXTERN unsigned int G_u16CrankGearW_SN90;//R	the NO.90 gear's width
EXTERN unsigned int G_u16CrankGearW_SN0;//R		the NO.0 gear's width
EXTERN unsigned int G_u16Ign1LostCounter;//R	the counter for the ign1 lost spark events
EXTERN unsigned int G_u16Ign2LostCounter;//R	the counter for the ign2 lost spark events
EXTERN unsigned int G_u16Ign3LostCounter;//R	the counter for the ign3 lost spark events
EXTERN unsigned int G_u16Ign4LostCounter;//R	the counter for the ign4 lost spark events
EXTERN unsigned char G_bCamError;//1--cam signal normally;0--there is no cam signal
EXTERN unsigned char G_u8CRK_GearsCounter;//counte the crank gears
//EXTERN unsigned char G_u8CRKCounterMax;//counte the crank gears

EXTERN BIT_Union      _CrankShaftCtrl;	  
#define CrankShaft       _CrankShaftCtrl.Byte
#define G_bMissing	  				_CrankShaftCtrl.Bits.BIT0//crankshaft lack gear flag
#define G_bCrankError			_CrankShaftCtrl.Bits.BIT1//crank signal error

	
/******************ignition and injection timing calculation************/
EXTERN unsigned char IgnStart_M[4];//the master ignition start gear No.
EXTERN unsigned char IgnStartCMP_Error[3];//the master ignition start gear No.
EXTERN unsigned char IgnStart_S[4];//the slave ignition start gears No
EXTERN unsigned char IgnEnd_M[4];//the master ignition end gears No
EXTERN unsigned char IgnEndCMP_Error[3];//the master ignition end gears No
EXTERN unsigned char IgnEnd_S[4];//the slave ignition end gears No.
EXTERN unsigned int IgnStartDelay_M[4];//the master ignition start gear No.
EXTERN unsigned int IgnStartDelay_S[4];//the slave ignition start gears No
EXTERN unsigned int IgnEndDelay_M[4];//the master ignition end gears No
EXTERN unsigned int IgnEndDelay_S[4];//the slave ignition end gears No.

EXTERN unsigned char G_u8IgnAdvance_M;//R	the master ignition advance data
EXTERN float flo_IgnAdvAngle_M;//the master ignition advance angle
EXTERN unsigned char G_u8IgnAdvance_S;//R	the slave ignition advance data
EXTERN char G_n8SlaveIgnOffset;//R		G_n8SlaveIgnOffset=G_u8IgnAdvance_M-G_u8IgnAdvance_S
EXTERN float flo_IgnAdvAngle_S;//the slave ignition advance angle
EXTERN unsigned char G_u8IgnAdvBase;//R		the base advanced angle of the ingnition
EXTERN char G_n8IgnAdvAdap;//R		the ignition advance adaption to the environment
EXTERN char G_n8IgnIdleOsAdap;//R	the ignition advace adation to oxygen closed loop
EXTERN unsigned char IgnAdvReserve[4];//R	the ignition advance reserve data(点火推迟角)
EXTERN unsigned int G_u16PreIgnDelay;//
EXTERN unsigned char G_u8PreIgnGear;//
EXTERN unsigned char InjStart[4];//the injection start gear No.
EXTERN unsigned int InjTimer[4];//the injection start time
EXTERN unsigned char G_u8InjAdvance;//R		the injection advance
EXTERN unsigned char G_u8InjGear;//conversion the injection width  as gears
EXTERN unsigned int G_u16InjWidth_Base;//R	the injection width base value
EXTERN unsigned int G_u16InjWidth;//R	the injection width witch has been revised

 
EXTERN BIT_Union      _IgnInjCtrl;	
#define IgnInjCtrl       _IgnInjCtrl.Byte
#define G_bIgn1Misfire		_IgnInjCtrl.Bits.BIT0//cylinder1 lost spark
#define G_bIgn2Misfire		_IgnInjCtrl.Bits.BIT1//cylinder2 lost spark
#define G_bIgn3Misfire		_IgnInjCtrl.Bits.BIT2//cylinder3 lost spark
#define G_bIgn4Misfire		_IgnInjCtrl.Bits.BIT3//cylinder4 lost spark
#define G_bMasterIgn		_IgnInjCtrl.Bits.BIT4//master ignition status bit
#define G_bSlaveIgn		_IgnInjCtrl.Bits.BIT5//slave ignition status bit
#define G_bInjection		_IgnInjCtrl.Bits.BIT6//injection status bit
#define G_bInjCutoff		_IgnInjCtrl.Bits.BIT7//injection status bit
	   
	
EXTERN BIT_Union		_TimingCalculation;
#define TimingCalculation				_TimingCalculation.Byte
#define G_bIgn1Timing							_TimingCalculation.Bits.BIT0
#define G_bIgn2Timing							_TimingCalculation.Bits.BIT1
#define G_bIgn3Timing							_TimingCalculation.Bits.BIT2
#define G_bIgn4Timing							_TimingCalculation.Bits.BIT3
#define G_bInj1Timing							_TimingCalculation.Bits.BIT4
#define G_bInj2Timing							_TimingCalculation.Bits.BIT5
#define G_bInj3Timing							_TimingCalculation.Bits.BIT6
#define G_bInj4Timing							_TimingCalculation.Bits.BIT7

EXTERN BIT_Union		_InjDownCount;
#define InjDownCount				_InjDownCount.Byte
#define G_bInj1Down							_InjDownCount.Bits.BIT0
#define G_bInj2Down							_InjDownCount.Bits.BIT1
#define G_bInj3Down							_InjDownCount.Bits.BIT2
#define G_bInj4Down							_InjDownCount.Bits.BIT3

/*********************idleMotor.c**************************/
EXTERN unsigned int G_u16MotorRestTiming;
EXTERN unsigned char NEW,POS;
EXTERN BIT_Union		_ISC_Ctrl;
#define ISC_Ctrl				_ISC_Ctrl.Byte
#define G_bISCmoving							_ISC_Ctrl.Bits.BIT0
#define G_bISCmin							_ISC_Ctrl.Bits.BIT1
#define G_bISCreset							_ISC_Ctrl.Bits.BIT2


  

/*********************analog.c**************************
	AN00--CRP signal voltage    				sqr480 used
	AN01--voltage of the battery				sqr480 used
	AN02--intake pressure						sqr480 used
	AN03--intake tempreture						sqr480 used
	AN04--tempreture of the air condition		sqr480 used
	AN05--throttle postion						sqr480 used
	AN06--EGR vavle position
	AN07--coolant water tempreture				sqr480 used
	AN08--voltage of the vechle speed signal	sqr480 used
	AN09--the NO.1 oxygen signal voltage		sqr480 used
	AN10--the NO.2 oxygen signal voltage
	AN11--knock signal voltage					sqr480 used
	AN12--option analog signal input
	AN13--CMP signal voltage					sqr480 used
	AN14--MAF in
	AM15--knock signal integral value

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -