📄 system.h
字号:
#define Idx_idlelink 1#define Idx_exit 2#define Idx_rdds 3#define Idx_clrdtc 4#define Idx_rddtc 5
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#define CANCTRL 0x00 //Control Register
#define CANSTAT 0x01 //Status register
#define ERRCNT 0x02 //Error Counter Register
#define BITREG 0x03 //Bit Timing Register
#define INTREG 0x04 //Interrupt Low Byte Register
#define CANTSTR 0x05 //Test register
#define BRPEXT 0x06 //BRP Extension Register
////////////////////////////////////////////////////////////////////////////////
//IF1 Interface Registers
////////////////////////////////////////////////////////////////////////////////
#define IF1CMDRQST 0x08 //IF1 Command Rest Register
#define IF1CMDMSK 0x09 //IF1 Command Mask Register
#define IF1MSK1 0x0A //IF1 Mask1 Register
#define IF1MSK2 0x0B //IF1 Mask2 Register
#define IF1ARB1 0x0C //IF1 Arbitration 1 Register
#define IF1ARB2 0x0D //IF1 Arbitration 2 Register
#define IF1MSGC 0x0E //IF1 Message Control Register
#define IF1DATA1 0x0F //IF1 Data A1 Register
#define IF1DATA2 0x10 //IF1 Data A2 Register
#define IF1DATB1 0x11 //IF1 Data B1 Register
#define IF1DATB2 0x12 //IF1 Data B2 Register
////////////////////////////////////////////////////////////////////////////////
//IF2 Interface Registers
////////////////////////////////////////////////////////////////////////////////
#define IF2CMDRQST 0x20 //IF2 Command Rest Register
#define IF2CMDMSK 0x21 //IF2 Command Mask Register
#define IF2MSK1 0x22 //IF2 Mask1 Register
#define IF2MSK2 0x23 //IF2 Mask2 Register
#define IF2ARB1 0x24 //IF2 Arbitration 1 Register
#define IF2ARB2 0x25 //IF2 Arbitration 2 Register
#define IF2MSGC 0x26 //IF2 Message Control Register
#define IF2DATA1 0x27 //IF2 Data A1 Register
#define IF2DATA2 0x28 //IF2 Data A2 Register
#define IF2DATB1 0x29 //IF2 Data B1 Register
#define IF2DATB2 0x2A //IF2 Data B2 Register
////////////////////////////////////////////////////////////////////////////////
//Message Handler Registers
////////////////////////////////////////////////////////////////////////////////
#define TRANSREQ1 0x40 //Transmission Rest1 Register
#define TRANSREQ2 0x41 //Transmission Rest2 Register
#define NEWDAT1 0x48 //New Data 1 Register
#define NEWDAT2 0x49 //New Data 2 Register
#define INTPEND1 0x50 //Interrupt Pending 1 Register
#define INTPEND2 0x51 //Interrupt Pending 2 Register
#define MSGVAL1 0x58 //Message Valid 1 Register
#define MSGVAL2 0x59 //Message Valid 2 Register
/********************16-bit SFR Definitions for F040*************************/
sfr16 RCAP2 = 0xCA; // Timer2 reload/capture value
sfr16 RCAP3 = 0xCA; // Timer3 reload/capture value
sfr16 RCAP4 = 0xCA; // Timer4 reload/capture value
sfr16 TMR2 = 0xCC; // Timer2 counter/timer
sfr16 TMR3 = 0xCC; // Timer3 counter/timer
sfr16 TMR4 = 0xCC; // Timer4 counter/timer
sfr16 CAN0DAT = 0xD8; // DATA
/********************有关点灯函数用到的全局变量/常量*************************/
unsigned short Timer3_OverTimes; // 定时器3溢出次数
sbit LED = P4^4; // LED='0' means ON
sbit TXD0 =P2^7;
sbit RXD0 =P0^1;
sbit TXD1 =P0^2;
sbit RXD1 =P0^3;
/**************************全局变量/常量定义*********************************/
unsigned char xdata CarComputerSendData[1000]; //汽车电脑将要发送的数据(采用10*100的格式放置)缓冲区
/************************CAN******************************/
unsigned char xdata CanRecData[256];// CAN接收缓冲区
unsigned char xdata CanSendData[256];// CAN发送缓冲区
unsigned char MultiDtcFlag;
/**************************串口1通讯数据存储用到的全局变量/常量**************/
unsigned char xdata Comm1RecData[30]; //串口1接收缓冲区
unsigned char xdata Comm1SendData[1100]; //串口1发送缓冲区
unsigned int xdata Comm1RecPtr,Comm1SendPtr; //串口1接收、发送指针
unsigned int xdata Comm1RecLength;
unsigned int xdata Comm1SendLength;
/************************串口0通讯数据存储用到的全局变量/常量***********************/
unsigned char xdata Comm0RecData[255]; //串口0接收缓冲区
unsigned char xdata Comm0SendData[255]; //串口0发送缓冲区
unsigned char xdata Comm0RecPtr,Comm0SendPtr; //串口0接收、发送指针
unsigned char xdata Comm0RecLength;
unsigned char xdata Comm0SendLength;
unsigned char ByteDelay; //字节间隔
unsigned short FrameTime; //侦间隔时间
unsigned short Timer3_OverTimes;
unsigned char Command;
unsigned char Curcommand;
/***************************调试用的临时变量**************************************/
unsigned char tempvar=0xff;
/****************************can 变量*********************************************/
char MsgNum;
char status;
int i;
int MOTwoIndex = 0;
int MOOneIndex = 0;
int StatusCopy;
int RXbuffer [4];
int TXbuffer [8];
int MsgIntNum;
int Temperature;
/**************************Function PROTOTYPES************************************/
void SYSCLK_Init (void); //系统时钟初始化,此程序选用外部晶振作系统时钟源
void PORT_Init (void); //端口初始化,打开UART0、UART1的交叉开关
void UART1_Init (void); //UART1初始化,用TIMER1做波特率发生源
void UART0_Init (void); //UART1初始化,用TIMER1做波特率发生源
void Timer3_Init (void); //定时器3初始化,定时1ms
void Variable_Init(void); //部分变量初始化函数
void Comm1Process(void); //串口1接收数据后的处理函数
void PortSet(void); //通信端口设置
void MkrecData(void); //UARTO的接受函数
void MksendData(void); //UART0的发送函数
void Comm1mksenddata(void); //UART1的发送函数
void SingleCheck(void); //单字节累加和校验
void DelayTime(unsigned short int); //延时100MS误差1MS,延时1S误差10MS
//unsigned char RecByte(void); //接收一个字符
//void SendByte(unsigned char ); //发送一个字符
//unsigned char Check5bps(void); //接受5BPS数据
//void DoubleCheck(void); //双字节累加和校验
/***************************MSG OBJECTS INIT********************************
* 清空所有报文对象,因为有些MESSAGE OBJECT不用但要初始化 *
* 将不使用的message object的MsgVal都复位 *
******************************************************************************/
// Initialize Message Object
void Clear_Msg_Objects (void);
void Init_Msg_Object_TX (char MsgNum);
void Init_Msg_Object_RX (char MsgNum);
void Start_CAN (void);
void Receive_Data (char MsgNum);
void Test_Reg_Write (char test);
void Transmit_Message (char MsgNum);
void SetBaudRate(unsigned int);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -