📄 func_f2812.c
字号:
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"
Uint16 Error_flag;
Uint16 Pass_flag;
//===========================================================================
// followed routines to init some data memory and variables
//===========================================================================
void DataInit(void)
{
Uint32 para1,para2;
TaskReg.tsk.all=0;
TaskReg.tsk.bit.Taskp8=1;
Error_flag = 0;
Pass_flag = 0;
SciaRxPC=0;
ScibRxPC=0;
SciaTxPC=0;
ScibTxPC=0;
StatusMark.Common.all=0x0081;
SciaMark.all=0;
ScibMark.all=0;
FiberMark.all=0;
CanMark.all=0;
YX.Status1.all=0;
YX.Status2.all=0;
YX.Status3.all=0;
YC.Mark1.all=0;
YC.Mark2.all=0;
Protect_SD_Start=0;
Protect_SD_Start_PC=0;
CanRTx_PC=0;
CanRTx_PC1=0;
CanBOPC=0;
CanBOPC1=0;
CanRTx_Start=0;
SoeSendPC=0;
LED.all=0;
para1=0x0080000;
para2=0x001f800;
Mem_clear(para1,para2);
if((EE_EventMark!=0x55aa)||(EE_EventRecordPC>31)||(SciaSoeSendPC>31))
{
para1=0x009f800;
para2=0x0000700;
Mem_clear(para1,para2);
EE_EventMark=0x55aa;
EE_EventRecordPC=0;
SciaSoeSendPC=EE_EventRecordPC;
}
SciaSoeSendPC=EE_EventRecordPC;
EventRecordPC=0;
if(NV_Mark!=0x5A5A)
{
NV_Mark=0x5A5A;
P1_pulse=0;
Q1_pulse=0;
P1_pulse_Bak=0;
Q1_pulse_Bak=0;
P2_pulse=0;
Q2_pulse=0;
P2_pulse_Bak=0;
Q2_pulse_Bak=0;
P1_sum=0;
Q1_sum=0;
P1_sum_Bak=0;
Q1_sum_Bak=0;
P2_sum=0;
Q2_sum=0;
P2_sum_Bak=0;
Q2_sum_Bak=0;
}
P1_sum_Tmp=0;
Q1_sum_Tmp=0;
P2_sum_Tmp=0;
Q2_sum_Tmp=0;
TaskReg.input.all=ReadBinary();
YX.Status1.all=TaskReg.input.all;
TaskReg.err.all = 0;
TaskReg.event1.all = 0;
TaskReg.event2.all = 0;
TaskReg.run.all = 0;
TaskReg.output.all = 0;
Protect_start = 0;
AlarmMark.A1.all = 0;
AlarmMark.A2.all = 0;
MmiMark.all = 0;
GLHJSMark=0;
CHZHJSQD=0;
LXGLHJSMark=0;
BHQDCHZ=0;
YK_Trip_signal=0;
ChargeMark=0;
Chargerun=0;
run_charge=1;
CHZ_Return=0;
CHZ_Return_signl=0;
GLHJS_signl=0;
LXGLHJS_signl=0;
Time_same_counter=0;
SH_Close_signal=0;
Angle_PC=0;
Angle_Counter=0;
Times_Angle_PC=0;
Time_Angle=0;
CHZ_UL_Um=0;
Sign_Angle=0;
consult_angle_flag=0;
// DA_flag=0;
Mark_U2OrUnder=0;
Mark_U0Check=0;
I0_DirMark=0;
Freq_PC=0;
dfdt_signl=0;
dfdt_rst_PC=0;
Freq_Counter=0;
dfdt_Counter=0;
Freq_Start=0;
RelayAllSignalPc=0;
RelayAllWarnPc=0;
Spi_DA1=0000;
Spi_DA2=0000;
DA_flag=0;
TaskReg.run.bit.BinChange=1; //power on start YX message to display CPU
/* LEDStatus=0xff; //状态指示灯状态
UnitLEDStatus=0xff;
Number=0;
KEY=0;
*/
UnitLED_Fresh(0x00);
StatusLED_OFF(0xff);
Bak_Second=second();
}
//===========================================================================
// followed routines to kick external watchdog
//===========================================================================
void Dog_f(void)
{
static int ExternDogMark=0x01;
ExternDogMark=ExternDogMark^0x01;
if(ExternDogMark) GpioDataRegs.GPASET.bit.GPIOA14=0x01;
else GpioDataRegs.GPACLEAR.bit.GPIOA14=0x01;
}
//===========================================================================
// followed routines to read frequences from CPLD
//===========================================================================
//###########################################################################
//
void delay_loop(void)
{
long i;
for (i = 0; i < 20000; i++) {}
}
//===========================================================================
// followed routines to data Memory
//===========================================================================
void Mem_selfchk(Uint32 start_address, Uint32 length)
{
Uint16 * MEM_ADDR;
Uint32 k,var;
MEM_ADDR=(Uint16 *)start_address;
for (k=0;k<length;k++)
{
*MEM_ADDR = 0xAAAA;
var = *MEM_ADDR;
if(var != 0xAAAA)
Error_flag = Error_flag|0x0002;
else
*MEM_ADDR = 0x5555;
var = *MEM_ADDR;
if(var != 0x5555)
Error_flag = Error_flag|0x0001;
else
MEM_ADDR++;
}
}
void Mem_clear(Uint32 start_address, Uint32 length)
{
Uint16 * MEM_ADDR;
Uint32 k;
MEM_ADDR=(Uint16 *)start_address;
for (k=0;k<length;k++)
{
*MEM_ADDR++ = 0 ;
}
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -