📄 main.c
字号:
//*******************************************************************************
//Copyright (c) 2007,派利斯电子(北京)有限公司 硬件部
//文件名称: Main.c
//摘 要: 本文件主要包含PT2060-20程序中的主程序运行
//当前版本: D-1
//作 者: 佟文杰
//完成日期: 4/13/2007
//修 改 人:
//修改原因:
//修改日期:
//*******************************************************************************
#include "hardware.h"
#include "currentmodule.h"
#include "channelstatus.h"
#include "Framemodule.h"
#include "adsample.h"
#include "alarm.h"
#include "can.h"
#include "comm.h"
#include "flashmodule.h"
#include "C8051F020.H" //主函数的头文件调用最后全归结到调用framemodule.h文件
void HaveHOTResetProcess(void);
void NotHaveHOTResetProcess(void);
unsigned int idata uchRstType _at_ 0xaf;
void main(void)
{
EA=0;
DisableDog();
EnableDog();
InitHardWareModule();
if (uchRstType != 0xa55a)
{
uchRstType = 0xa55a;
NotHaveHOTResetProcess();
}
else if (uchRstType == 0xa55a)
{
HaveHOTResetProcess();
InitHotResetFramPara();
SetHotResetFlag(1);
}
else
{
HaveHOTResetProcess();
}
while(1)
{
MainSignalProcess();
CanMessageProcess();
}
}
//--------------------------------------------------------------------------
//函数名称:void NotHaveHOTResetProcess(void)
//功 能:没有热复位只是上电复位的执行程序
//输入参数:无
//返 回:无
//完成日期:4/12/2007
//--------------------------------------------------------------------------
void NotHaveHOTResetProcess(void)
{
InitRuningLEDControl(); // 加灯闪烁控制
InitHardWareParaVariable();
InitAlarmModuleSoftPara();
InitChannelModulePara();
SetHeartInterval(10);
StartHeartBeat();
InitAlarmModuleHeartBeatPara();
InitFramemoduleParameters(); //AD模块初始化应该放在参数初始化滞后
EIP2 = EIP2 | 0x02; //采样优先级最高
StartHeartBeat();
EA = 1;
InitFramemoduleVariable();
CANModuleParaInit();
JudgeCPUSituationFlag();
DelayTimeReportModuleType();
InitCOMMModulePara();
CheckSystemRAMInvalidation();
CheckSystemFLASHInvalidation();
}
//--------------------------------------------------------------------------
//函数名称:void HaveHOTResetProcess(void)
//功 能:有热复位时执行的程序
//输入参数:无
//返 回:无
//完成日期:4/12/2007
//--------------------------------------------------------------------------
void HaveHOTResetProcess(void)
{
unsigned char xdata uchCPUAddress;
InitRuningLEDControl();
HaveHotResetAlarmProcess(1);
HaveHotResetAlarmProcess(2);
InitHardWareParaVariable();
//----------------------------------------
//-------------------------------------------------
SetHeartInterval(10);
StartHeartBeat();
InitAlarmModuleHeartBeatPara();
InitFramemoduleParameters(); //AD模块初始化应该放在参数初始化滞后
uchCPUAddress = ReadCANAddress();
CAN_Init(uchCPUAddress,1);
StopCan();
ClearAllMessage();
StartCan();
IE |= 0x04; //开中断1中断
IT1 = 0; //电平触发
EIP2 = EIP2 | 0x02; //采样优先级最高
StartHeartBeat();
EA = 1;
InitFramemoduleVariable();
CANModuleParaInit();
JudgeCPUSituationFlag();
InitCOMMModulePara();
CheckSystemRAMInvalidation();
CheckSystemFLASHInvalidation();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -