找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2521|回复: 4
打印 上一主题 下一主题
收起左侧

单片机问题,为什么我这样写寄存器低8位加不进寄存器高8位啊?

[复制链接]
跳转到指定楼层
楼主
为什么我这样写寄存器低8位加不进寄存器高8位啊,请大佬们指点指点

BPT%CZQ6[7HA7DT{QYQF{]5.png (36.49 KB, 下载次数: 47)

BPT%CZQ6[7HA7DT{QYQF{]5.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:86926 发表于 2020-8-4 17:17 | 只看该作者
因为8位数据最大值是256,但是在编译环境中是从0开始的,也就是0-255,所以256是不存在的,永远也不会>=256;
回复

使用道具 举报

板凳
ID:804115 发表于 2020-8-4 17:29 | 只看该作者
楼上说的对,仔细想想,if(P1ADTL >= 256)什么时候为真?有可能为真吗?如果有,你举例说明一下?
回复

使用道具 举报

地板
ID:609524 发表于 2020-8-4 18:25 | 只看该作者
蓝魄 发表于 2020-8-4 17:17
因为8位数据最大值是256,但是在编译环境中是从0开始的,也就是0-255,所以256是不存在的,永远也不会>=256 ...

我重新改了一下,你帮我看看我这个为什么还会无限的加下去
else if(RF_KEY==0x0D)        //亮度减少
                {
                         if(RF_PWM_JIE)
                         {
                                 RF_PWM_JIE = 0;
                                   //每次按下按键寄存器低8位加10
                             if(P1ADTL>=246)
                                 {
                                         P1ADTL = P1ADTL-245;                                       
                     P1ADTH=P1ADTH+1;
                                 }
                 else
                 {
                       P1ADTL = P1ADTL+10;       
                        if(P1ADTH>=1)
                       {
                             if(P1ADTL>=145)
                             {
                                  P1ADTL=145;
                              }
                        }
                 }
               
                         }
                }
回复

使用道具 举报

5#
ID:739545 发表于 2020-8-5 16:24 | 只看该作者
可以连调么,可以的话看下TL和TH的值,怀疑TL和TH不能用作数据判断,用一个中间变量试一下
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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