⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 provmap.c

📁 SDH光端机支路单元盘开发程序
💻 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 + -