迪文科技论坛

 找回密码
 立即注册
搜索
查看: 260|回复: 4

【提问】C51 COF4.3 T5L0 程序if异常

[复制链接]

2

主题

20

回帖

153

积分

注册会员

Rank: 2

积分
153
发表于 2022-7-24 10:51:19 | 显示全部楼层 |阅读模式
本帖最后由 xiaofangzi 于 2022-7-24 19:12 编辑

C51 程序读取UI变量,根据变量数值进行判断,判断结果与预期有较大差异!
        static xdata u32 oldstep ;
        gCmd =  Read32_Dgus(SET_CMD);
        if(gCmd != oldstep )
        {
                oldsstep = gCmd ;
                printf("gcmd=%d  old=%d \r\n",gCmd,oldstep);//gCmd=1
                if(gCmd == 1)
                {
                        printf("==1,gcmd=%d , step=%d \r\n",gCmd,step);//即使gCmd=1时不进入该语句
                }
                else
                {
                        printf("other,gcmd=%d , step=%d \r\n",gCmd,step);
                }
        }


当gcmd =1时
打印的信息:

gcmd=1  old=0
other,gcmd=1 , step=0


其中读取函数
u32 Read32_Dgus(u16 Dgus_Addr)
{                  
                                u32 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;
                                R_Dgus= (R_Dgus<<16) + (DATA1<<8) + DATA0;
                        }
                        RAMMODE = 0;
                        EA = 1;
                        return   R_Dgus;        

}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

15

主题

115

回帖

1836

积分

金牌会员

Rank: 6Rank: 6

积分
1836
发表于 2022-7-25 14:23:30 | 显示全部楼层
方便给源码看看吗。
回复

使用道具 举报

2

主题

20

回帖

153

积分

注册会员

Rank: 2

积分
153
 楼主| 发表于 2022-7-25 16:36:03 | 显示全部楼层
cuijia 发表于 2022-7-25 14:23
方便给源码看看吗。

源码现在不在身边,稍后上传,其实程序很简单,已经把关键代码列出了,就是Reed32_Dgus去读一下变量,然后判断一下数值。
回复

使用道具 举报

2

主题

20

回帖

153

积分

注册会员

Rank: 2

积分
153
 楼主| 发表于 2022-7-25 21:40:10 | 显示全部楼层
xiaofangzi 发表于 2022-7-25 16:36
源码现在不在身边,稍后上传,其实程序很简单,已经把关键代码列出了,就是Reed32_Dgus去读一下变量,然 ...

源代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

2

主题

20

回帖

153

积分

注册会员

Rank: 2

积分
153
 楼主| 发表于 2022-7-26 08:06:31 | 显示全部楼层
发现问题了,是读取u32变量函数有问题,读取后的gCmd数值为65536,printf %d把强制变换为1了,所以误以为gCmd变量为1。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 01:52 , Processed in 0.064241 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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