📄 test.c
字号:
}
break;
case 0x543030: //command"T00" 测试用命令查看寄存器的数值
case 0x743030: //command"t00"
if (!GetMcpRdyTbl(40)){
cmd_para_save.test_read_board = (rx_buf[i][0xA])-0x30;
cmd_length_temp1 = (unsigned int)AsciiToHex(rx_buf[i][0x0B]);
cmd_length_temp2 = (unsigned int)AsciiToHex(rx_buf[i][0x0C]);
cmd_length_temp3 = (unsigned int)AsciiToHex(rx_buf[i][0x0D]);
cmd_length_temp4 = (unsigned int)AsciiToHex(rx_buf[i][0x0E]);
cmd_para_save.test_read_address = cmd_length_temp1 << 12 | cmd_length_temp2 << 8 | cmd_length_temp3 << 4 | cmd_length_temp4;
SetMcpRdyTbl(40);
}
break;
case 0x543031: //command"T01" 测试用命令写寄存器
case 0x743031: //command"t01"
if (!GetMcpRdyTbl(41)){
cmd_para_save.test_write_board = (rx_buf[i][0xA])-0x30;
cmd_length_temp1 = (unsigned int)AsciiToHex(rx_buf[i][0x0B]);
cmd_length_temp2 = (unsigned int)AsciiToHex(rx_buf[i][0x0C]);
cmd_length_temp3 = (unsigned int)AsciiToHex(rx_buf[i][0x0D]);
cmd_length_temp4 = (unsigned int)AsciiToHex(rx_buf[i][0x0E]);
cmd_para_save.test_write_address = cmd_length_temp1 << 12 | cmd_length_temp2 << 8 | cmd_length_temp3 << 4 | cmd_length_temp4;
temp1 = AsciiToHex(rx_buf[i][0x0F]);
temp2 = AsciiToHex(rx_buf[i][0x10]);
cmd_para_save.test_write_value = temp1 << 4 | temp2;
SetMcpRdyTbl(41);
}
break;
/* case 0x543032: //command"T02" 测试用命令查看寄存器的数值
case 0x743032: //command"t02"
if (!GetMcpRdyTbl(42)){
cmd_para_save.test_read_name = rx_buf[i][0x0A] - 0x30;
SetMcpRdyTbl(42);
}
break;
case 0x543033: //command"T03" 测试用命令写寄存器
case 0x743033: //command"t03"
if (!GetMcpRdyTbl(43)){
cmd_para_save.test_write_name = rx_buf[i][0x0A] - 0x30;
temp1 = AsciiToHex(rx_buf[i][0x0B]);
temp2 = AsciiToHex(rx_buf[i][0x0C]);
cmd_para_save.test_value = temp1 << 4 | temp2;
SetMcpRdyTbl(43);
}
break;
*/ case 0x543034: //command"T04" 测试用命令写寄存器
case 0x743034: //command"t04"
if (!GetMcpRdyTbl(44)){
read_port = rx_buf[i][0x0A] - 0x30;
SetMcpRdyTbl(44);
}
break;
case 0x543035: //command"T05" 测试用命令写寄存器
case 0x743035: //command"t05"
if (!GetMcpRdyTbl(45)){
read_port = rx_buf[i][0x0A] - 0x30;
SetMcpRdyTbl(45);
}
break;
default :
reply_unknown_cmd(i);
}
save_cmd_enable[i] = 0;
}
void save_cmd1(void){
if (rx_buf_overflow[0]){
reply_unknown_cmd(0);
}
else if (save_cmd_enable[0]){
analysis_cmd(0);
// while (!tx_buf_empty){}
// for(i=0;i<RX_BUF_SIZE;i++)
// tx_buf[i] = rx_buf[0][i];
// save_cmd_enable[0] = 0;
// while(!tx_done){}
// tx_done = 0;
// tx_buf_empty = 0;
// TI = 1;
}
}
void save_cmd2(void){
if (rx_buf_overflow[1]){
reply_unknown_cmd(1);
}
else if (save_cmd_enable[1]){
analysis_cmd(1);
// while(!tx_buf_empty){}
// for(i=0;i<RX_BUF_SIZE;i++)
// tx_buf[i] = rx_buf[1][i];
// save_cmd_enable[1] = 0;
// while(!tx_done){}
// tx_done = 0;
// tx_buf_empty = 0;
// TI = 1;
}
}
void main (void) {
unsigned char xdata TUnum;
// unsigned char xdata inport;
// unsigned char xdata outport;
unsigned char xdata btemp;
Uchar prio=0;
EA = 0; /* Disable global interrupt flag */
P1_0 = ~P1_0;
/*Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/
#ifndef MONITOR51
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
P1_0 = ~P1_0;
TH1 = 0xFA; /* TH1: reload value for 9600 baud @ 11.0592MHz */
TL1 = 0xFA;
TR1 = 1; /* TR1: timer 1 run */
// /* TI = 1; /* TI: set TI to send first char of UART */
#endif
// TestSerial(); // uncomment this function to verify serial communication
// #if 0 // init ISD51 and start user program until the uVision2 Debugger connects
// ISDinit (); // initialize uVision2 Debugger and continue program run
// #endif
// #if 0 // init ISD51 and wait until the uVision2 Debugger connects
// ISDwait (); // wait for connection to uVision2 Debugger
// #endif
P1_0 = ~P1_0;
time = 0;
time1 = 0;
time2 = 0;
time3 = 0;
PX0 = 1; //set int0 high ptio
PS = 1; //set serial high prio
P1_0 = ~P1_0;
ES = 1; //enable serial port int
EA = 1; // Enable global interrupt flag
P1_0 = ~P1_0;
TMOD |= 0x01; //timer 1 type 1
TH0 = -46080/256;
P1_0 = ~P1_0;
TL0 = -46080%256;
P1_0 = ~P1_0;
ET0 = 1; //open T/C0 interrupt
TR0 = 1; //start T/C0
P1_0 = ~P1_0;
btemp = 1;
while (btemp){
if (P1_7 == 1){
btemp = 0;
}
}
///////////////////
P1 = 0x50;
XBYTE[0xC400] = 0x01;
delay();
XBYTE[0xC400] = 0x00;
P1 = 0;
init_7820();
Encrypt_reg = 0xAA;
Intmask_reg = 0xFF;
// btemp = Int_reg;
S_reg = 0xC1; //set 7820 free run
//init 7860
P1 = 0x30;
XBYTE[0xC400] = 0x01;
delay();
XBYTE[0xC400] = 0x00;
P1 = 0;
init_7860();
Reg_protect = 0xAA;
// Int_mask = 0x80;
Dxc_cntr = 0xA0;
//close alarm LED
XBYTE[0xBC00] = 0x01;
XBYTE[0xC000] = 0x01;
//init se0111 or init se0121
P1 = 0x20;
btemp = XBYTE[0xA400];
P1 = 0xFF;
if (btemp == 0x51){
init_se0111(1);
board_type[1][1] = 2;
start_flg[1] = 0;
if (!GetResRdyTbl(2))
SetResRdyTbl(2); //置响应事件列表相应位为1
}
else if (btemp == 0x57){ //初始化EOS
init_se0121(1);
board_type[1][1] = 3;
start_flg_EOS[1] = 0;
if (!GetResRdyTbl(2))
SetResRdyTbl(2); //置响应事件列表相应位为1
}
P1 = 0x60;
btemp = XBYTE[0xA400];
P1 = 0xFF;
if (btemp == 0x51){
init_se0111(2);
board_type[2][1] = 2;
start_flg[2] = 0;
if (!GetResRdyTbl(3))
SetResRdyTbl(3); //置响应事件列表相应位为1
}
else if (btemp == 0x57){ //初始化EOS
init_se0121(2);
board_type[2][1] = 3;
start_flg_EOS[2] = 0;
if (!GetResRdyTbl(3))
SetResRdyTbl(3); //置响应事件列表相应位为1
}
P1 = 0x40;
btemp = XBYTE[0xA400];
P1 = 0xFF;
if (btemp == 0x51){
init_se0111(3);
board_type[3][1] = 2;
start_flg[3] = 0;
if (!GetResRdyTbl(4))
SetResRdyTbl(4); //置响应事件列表相应位为1
}
else if (btemp == 0x57){ //初始化EOS
init_se0121(3);
board_type[3][1] = 3;
start_flg_EOS[3] = 0;
if (!GetResRdyTbl(4))
SetResRdyTbl(4); //置响应事件列表相应位为1
}
P1 = 0x10;
btemp = XBYTE[0xB000];
P1 = 0xFF;
if (btemp == 0x55){
reset_f2rc7860();
f2_rc7820();
f2rc7820_wr(F2Encrypt_reg,0xAA);
f2rc7820_wr(F2Intmask_reg,0xFF);
f2_rc7860();
f2rc7860_wr(F2Dxc_cntr,0xA0);
start_flg[0] = 0;
if (!GetResRdyTbl(5))
SetResRdyTbl(5); //置响应事件列表相应位为1
}
for(TUnum=0;TUnum<=63;TUnum++){
PTUN(0,TUnum)=0xFF;
}
for(TUnum=0;TUnum<=63;TUnum++){
PTUN(1,TUnum)=0xFF;
}
for(TUnum=0;TUnum<=63;TUnum++){
PTUN(2,TUnum)=0xFF;
}
for(TUnum=0;TUnum<=63;TUnum++){
PTUN(3,TUnum)=0xFF;
}
for(TUnum=0;TUnum<=63;TUnum++){
PTUN(4,TUnum)=0xFF;
}
for(TUnum=0;TUnum<=63;TUnum++){
PTUN(5,TUnum)=0xFF;
}
for(TUnum=0;TUnum<=63;TUnum++){
PTUN(6,TUnum)=0xFF;
}
btemp = 1;
while (btemp){
save_cmd1();
btemp = GetMcpRdyTbl(20);
if (btemp == 1){
btemp = 0;
commandid = 0x00433830;
result = 0;
SetResRdyTbl(1); //置响应事件列表相应位为1
}
else btemp = 1;
}
while (1) {
// #if 1 // init ISD51 only when the uVision2 Debugger tries to connect
// ISDcheck(); // initialize uVision2 Debugger and continue program run
// #endif
save_cmd1();
save_cmd2();
if (time >= 20){
time = 0;
P3_4 = ~P3_4;
}
prio = ScanResRdyTbl();
switch(prio){
case 1:
reply_mcp_command(commandid,result);
break;
case 2:
report_initializers_2M1();
break;
case 3:
report_initializers_2M2();
break;
case 4:
report_initializers_2M3();
break;
case 5:
report_initializers_OTB();
break;
case 6:
report_loss_2M1();
break;
case 7:
report_loss_2M2();
break;
case 8:
report_loss_2M3();
break;
case 9:
report_loss_OTB();
break;
case 10:
report_clock_stat(result);
break;
case 11:
report_clock_working(result);
break;
case 12:
report_overhead_value(result,overhead_value);
break;
case 13:
report_board_type(result);
break;
case 14:
report_board_state(result);
break;
case 15:
report_15min_performance();
break;
case 16:
report_work_performance(result);
break;
case 17:
report_overheadj_value(result);
break;
case 18:
report_1sec_performance();
break;
case 19:
report_alarm();
break;
case 20:
report_port_lpstat(result);
break;
case 21:
report_path_switch_table(result,bboardid,bportid,btimeid);
break;
case 22:
report_path_stat(result,mboardid,mportid);
break;
case 28:
report_auto_path_switch(auto_path_port);
break;
case 33:
report_EOS_address(result);
break;
case 35:
report_search_location(result);
break;
case 37:
report_EOS_work_state(result);
break;
case 39:
report_EOS_num(result);
break;
case 40:
report_regiester_value(result);
break;
// case 41:
// report_variable_value(result);
// br
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -