📄 provmap.c
字号:
/****************************************/
/* Copyright (c) 2004, 通信工程学院戴佳 */
/* All rights reserved. */
/* 作 者:戴佳 */
/****************************************/
#include <other.h>
struct instruction AddrToStruct(uint excur_addr);
//配置映射函数
void ProvMap(struct instruction ProMapValue)
{
switch (ProMapValue.ObjVal[2]) //不同的2M
{
case 1:
M1_04C=ProMapValue.ObjVal[1]; //RTUN
M1_04D=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M1_04A=M1_04A|0x02; //RnEN=1
f[0]=1;
M1_021=M1_021|0x01; //M1 Port1 Mask
M1_053=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M1_055=0x02; //SIGNAL LABEL =0X02
}
else
{
M1_04A=M1_04A&0xFD;
f[0]=0;
M1_021=M1_021&0xFE; //M1 Port1 Mask
}
break;
case 2:
M1_07C=ProMapValue.ObjVal[1]; //RTUN
M1_07D=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M1_07A=M1_07A|0x02; //RnEN=1
f[1]=1;
M1_021=M1_021|0x02; //M1 Port2 Mask
M1_083=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M1_085=0x02; //SIGNAL LABEL =0X02
}
else
{
M1_07A=M1_07A&0xFD;
f[1]=0;
M1_021=M1_021&0xFD; //M1 Port2 Mask
}
break;
case 3:
M1_0AC=ProMapValue.ObjVal[1]; //RTUN
M1_0AD=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M1_0AA=M1_0AA|0x02; //RnEN=1
f[2]=1;
M1_021=M1_021|0x04; //M1 Port3 Mask
M1_0B3=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M1_0B5=0x02;
}
else
{
M1_0AA=M1_0AA&0xFD;
f[2]=0;
M1_021=M1_021&0xFB; //M1 Port3 Mask
}
break;
case 4:
M1_0DC=ProMapValue.ObjVal[1]; //RTUN
M1_0DD=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M1_0DA=M1_0DA|0x02; //RnEN=1
f[3]=1;
M1_021=M1_021|0x08; //M1 Port4 Mask
M1_0E3=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M1_0E5=0x02;
}
else
{
M1_0DA=M1_0DA&0xFD;
f[3]=0;
M1_021=M1_021&0xF7; //M1 Port4 Mask
}
break;
case 5:
M2_04C=ProMapValue.ObjVal[1]; //RTUN
M2_04D=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M2_04A=M2_04A|0x02; //RnEN=1
f[4]=1;
M2_021=M2_021|0x01; //M2 Port1 Mask
M2_053=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M2_055=0x02; //SIGNAL LABEL =0X02
}
else
{
M2_04A=M2_04A&0xFD;
f[4]=0;
M2_021=M2_021&0xFE; //M2 Port1 Mask
}
break;
case 6:
M2_07C=ProMapValue.ObjVal[1]; //RTUN
M2_07D=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M2_07A=M2_07A|0x02; //RnEN=1
f[5]=1;
M2_021=M2_021|0x02; //M2 Port2 Mask
M2_083=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M2_085=0x02; //SIGNAL LABEL =0X02
}
else
{
M2_07A=M2_07A&0xFD;
f[5]=0;
M2_021=M2_021&0xFD; //M2 Port2 Mask
}
break;
case 7:
M2_0AC=ProMapValue.ObjVal[1]; //RTUN
M2_0AD=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M2_0AA=M2_0AA|0x02; //RnEN=1
f[6]=1;
M2_021=M2_021|0x04; //M2 Port3 Mask
M2_0B3=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M2_0B5=0x02;
}
else
{
M2_0AA=M2_0AA&0xFD;
f[6]=0;
M2_021=M2_021&0xFB; //M2 Port3 Mask
}
break;
case 8:
M2_0DC=ProMapValue.ObjVal[1]; //RTUN
M2_0DD=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M2_0DA=M2_0DA|0x02; //RnEN=1
f[7]=1;
M2_021=M2_021|0x08; //M2 Port4 Mask
M2_0E3=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M2_0E5=0x02;
}
else
{
M2_0DA=M2_0DA&0xFD;
f[7]=0;
M2_021=M2_021&0xF7; //M2 Port4 Mask
}
break;
case 9:
M3_04C=ProMapValue.ObjVal[1]; //RTUN
M3_04D=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M3_04A=M3_04A|0x02; //RnEN=1
f[8]=1;
M3_021=M3_021|0x01; //M3 Port1 Mask
M3_053=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M3_055=0x02;
}
else
{
M3_04A=M3_04A&0xFD;
f[8]=0;
M3_021=M3_021&0xFE; //M3 Port1 Mask
}
break;
case 10:
M3_07C=ProMapValue.ObjVal[1]; //RTUN
M3_07D=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M3_07A=M3_07A|0x02; //RnEN=1
f[9]=1;
M3_021=M3_021|0x02; //M3 Port2 Mask
M3_083=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M3_085=0x02;
}
else
{
M3_07A=M3_07A&0xFD;
f[9]=0;
M3_021=M3_021&0xFD; //M3 Port2 Mask
}
break;
case 11:
M3_0AC=ProMapValue.ObjVal[1]; //RTUN
M3_0AD=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M3_0AA=M3_0AA|0x02; //RnEN=1
f[10]=1;
M3_021=M3_021|0x04; //M3 Port3 Mask
M3_0B3=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M3_0B5=0x02;
}
else
{
M3_0AA=M3_0AA&0xFD;
f[10]=0;
M3_021=M3_021&0xFB; //M3 Port3 Mask
}
break;
case 12:
M3_0DC=ProMapValue.ObjVal[1]; //RTUN
M3_0DD=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M3_0DA=M3_0DA|0x02; //RnEN=1
f[11]=1;
M3_021=M3_021|0x08; //M3 Port4 Mask
M3_0E3=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M3_0E5=0x02; //SIGNAL LABEL =0X02
}
else
{
M3_0DA=M3_0DA&0xFD;
f[11]=0;
M3_021=M3_021&0xF7; //M3 Port4 Mask
}
break;
case 13:
M4_04C=ProMapValue.ObjVal[1]; //RTUN
M4_04D=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M4_04A=M4_04A|0x02; //RnEN=1
f[12]=1;
M4_021=M4_021|0x01; //M4 Port1 Mask
M4_053=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M4_055=0x02; //SIGNAL LABEL =0X02
}
else
{
M4_04A=M4_04A&0xFD;
f[12]=0;
M4_021=M4_021&0xFE; //M4 Port1 Mask
}
break;
case 14:
M4_07C=ProMapValue.ObjVal[1]; //RTUN
M4_07D=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M4_07A=M4_07A|0x02; //RnEN=1
f[13]=1;
M4_021=M4_021|0x02; //M4 Port2 Mask
M4_083=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M4_085=0x02; //SIGNAL LABEL =0X02
}
else
{
M4_07A=M4_07A&0xFD;
f[13]=0;
M4_021=M4_021&0xFD; //M4 Port2 Mask
}
break;
case 15:
M4_0AC=ProMapValue.ObjVal[1]; //RTUN
M4_0AD=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M4_0AA=M4_0AA|0x02; //RnEN=1
f[14]=1;
M4_021=M4_021|0x04; //M4 Port3 Mask
M4_0B3=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M4_0B5=0x02; //SIGNAL LABEL =0X02
}
else
{
M4_0AA=M4_0AA&0xFD;
f[14]=0;
M4_021=M4_021&0xFB; //M4 Port3 Mask
}
break;
case 16:
M4_0DC=ProMapValue.ObjVal[1]; //RTUN
M4_0DD=ProMapValue.ObjVal[1]; //TTUN
if (ProMapValue.ObjVal[1]!=0)
{
M4_0DA=M4_0DA|0x02; //RnEN=1
f[15]=1;
M4_021=M4_021|0x08; //M4 Port4 Mask
M4_0E3=0x02; //A Drop Bus Port n MicroProcessor-written SIGNAL LABEL =0X02
M4_0E5=0x02; //SIGNAL LABEL =0X02
}
else
{
M4_0DA=M4_0DA&0xFD;
f[15]=0;
M4_021=M4_021&0xF7; //M4 Port4 Mask
}
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -