迪文科技论坛

 找回密码
 立即注册
搜索
查看: 395|回复: 2

【提问】modbusC_V1.1 中访问变量地址空间

[复制链接]

8

主题

11

回帖

67

积分

注册会员

Rank: 2

积分
67
发表于 2022-3-22 16:32:43 | 显示全部楼层 |阅读模式
我想修改modbusC_V1.1的源码,在这里加个字节到位的映射,以提高通讯效率,需要访问变量地址空间,该如何访问变量地址空间?
我看头文件里面有2行注释了的声明:
// u16         Read_Dgus(u16 Dgus_Addr);
// void        Write_Dgus(u16 Dgus_Addr,u16 Val);
这2个函数是做什么的? 我能调用吗?

回复

使用道具 举报

0

主题

1276

回帖

5290

积分

论坛元老

Rank: 8Rank: 8

积分
5290
发表于 2022-3-22 16:58:42 | 显示全部楼层
可以调用的,这两个函数就是读取和写入 DGUS变量的。
回复

使用道具 举报

1

主题

20

回帖

1097

积分

金牌会员

Rank: 6Rank: 6

积分
1097
发表于 2022-3-23 13:47:30 | 显示全部楼层
u16 Read_Dgus(u16 Dgus_Addr)
{                              u16 R_Dgus=0;
                        EA = 0;ADR_H = 0x00;
                        ADR_M = (u8)((Dgus_Addr/2)>>8);
                        ADR_L = (u8)(Dgus_Addr/2);
                        RAMMODE = 0xAF; while(!APP_ACK);        //¶Á²Ù×÷
                        APP_EN = 1;     while(APP_EN);
                        if(Dgus_Addr%2)        R_Dgus = (DATA1<<8)+DATA0;
                        else            R_Dgus=(DATA3<<8)+DATA2;
                        RAMMODE = 0; EA = 1;        return   R_Dgus;
}
//====================================
void Write_Dgus(u16 Dgus_Addr,u16 Val)
{           EA = 0;ADR_H = 0x00;
                        ADR_M = (u8)((Dgus_Addr/2)>>8);
                        ADR_L = (u8)(Dgus_Addr/2);
                        RAMMODE = 0xAF;while(!APP_ACK);                //¶Á²Ù×÷
                        APP_EN = 1;while(APP_EN);RAMMODE = 0;
                           ADR_M = (u8)((Dgus_Addr/2)>>8);
                        ADR_L = (u8)(Dgus_Addr/2);
                        RAMMODE = 0x8F;while(!APP_ACK);                //д²Ù×÷
                        if(Dgus_Addr%2){DATA1=(u8)(Val>>8);DATA0=(u8)(Val);}
                        else           {DATA3=(u8)(Val>>8);DATA2=(u8)(Val);}
                    APP_EN = 1;        while(APP_EN);RAMMODE = 0;
                        EA = 1;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-25 05:06 , Processed in 0.070555 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表