发 帖  
【四旋翼飞行器】76小时吃透四轴算法!史上最强软硬结合实战项目,👉戳此立抢👈
[问答] 简单的Debug问题
194 51单片机
分享
问题:我想使用Debug调试,去看K的值,(简易代码见下),我用的是watch窗口,
按照程序运行的意思,K应该是个定值啊?为什么,在运行调试的时候,K的值在不断的变化呢?

  1. # include <reg51.h>


  2.         sbit P0_0 = P0^0;
  3.         
  4.         void main()
  5.         {
  6.                 int i;
  7.                 char k = 1;
  8.                
  9.                 k = k+1;
  10.                 while(1)
  11.                 {
  12.                         P0_0 = 1;
  13.                         for(i = 1;i<20000;i++)
  14.                         {
  15.                                 ;
  16.       }
  17.                         P0_0 = 0;
  18.                         for(i = 1;i<20000;i++)
  19.                         {
  20.                                 ;
  21.       }
  22.     }
复制代码


0
2019-3-16 15:54:59   评论 分享淘帖 邀请回答
1个回答
试了一下,确实如你所说,逻辑上确实不应该变化,你可以看看k作为局部变量的时候,是随着regs寄存器中的r7一起变化的,猜测是不是给k分配的是工作寄存器r7呢,至于为什么这么分配就不知道了,如果把k作为全局变量就不会发生这种现象,持续关注~
2019-3-17 23:08:00 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
课程
    关闭

    站长推荐 上一条 /8 下一条

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