[疑难问答] c语言中case 几个百个常量有没有简单的方法

[复制链接]
1047|5
 楼主| CallReceiver 发表于 2016-6-18 08:07 | 显示全部楼层 |阅读模式
上位机触摸屏通过Modbus 给下位机传送数据,但是上位机给下位机点的数量非常多,地址也是连续的,把所有的地址写出来太繁琐了,
弄得程序非常臃肿,因为上位机是触摸屏,每个变量按地址下发时不确定性 ,只能按照 功能码06,不按功能码10 (数据量大,传送时间长)
各位有没有好的简单方法呢
例如自己写的  
uint16_t Write_RVCReg( uint16_t Adrr_Data,uint16_t Value_Axis)

{

          uint16_t  ret=0;

     switch(Adrr_Data)

     {
         case 0x0000:  XRECV[0] = Value_Axis;    break;//
          case 0x0001:  XRECV[1] = Value_Axis;    break;
          case 0x0002:  XRECV[2] = Value_Axis;    break;
          case 0x0003:  XRECV[3] = Value_Axis;    break;
          case 0x0004:  XRECV[4] = Value_Axis;    break;               
          case 0x0005:  XRECV[5] = Value_Axis;    break;
          case 0x0006:  XRECV[6] =  Value_Axis;    break;
                .
                .
                .
                .
           case 0xnnnn:XRECV[nnnnn] =  Value_Axis;    break;

        default:    break;

      }


}
boy1990 发表于 2016-6-18 08:12 | 显示全部楼层
说白了就是 c语言,switch case,case后的常量为1到100规律性的,能有什么简单方法
sourceInsight 发表于 2016-6-18 09:05 | 显示全部楼层
函数指针数组??有没有想过。
 楼主| CallReceiver 发表于 2016-6-18 09:07 | 显示全部楼层
sourceInsight 发表于 2016-6-18 09:05
函数指针数组??有没有想过。

往那边想过,可惜一点思路没有
handleMessage 发表于 2016-6-18 09:23 | 显示全部楼层
建议你调试的时候 在每个中断里加个调试信息。你好确定每次进入的是哪个中断啊。
zhouhuanの 发表于 2016-6-18 09:25 | 显示全部楼层
宏定义,行号和case 对应。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

1695

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部