yufe 发表于 2022-8-3 21:11

延时程序好像死机了

程序中运行到延时程序,程序就好像死机了,什么反应都没有了

chuxh 发表于 2022-8-3 21:13

延时程序能进入吗?

yufe 发表于 2022-8-3 21:15


程序跳出后,不知程序跑到哪里去了,就死机了。软件模拟是没有问题的。
c51写的。

chuxh 发表于 2022-8-3 21:17

程序呢

yufe 发表于 2022-8-3 21:19


void delayms(unsigned int tt) {
    unsigned int t;                  //   ?                           
      for(;tt>0;tt--)               
       for(t=230;t>0;t--)      //?      
          {                                                
          ;
          }   
}

jiajs 发表于 2022-8-3 21:34

unsigned int t;反汇编看看t是什么样的,会不会因为该值是临时变量,由于中断的缘故,该变量的值老是被修改而无法到达0。

yufe 发表于 2022-8-3 21:36

已经把程序中大部分都删除了,就留一个延时程序了,真正原因还是没找到啊!

renyaq 发表于 2022-8-3 21:38

可以用char的要用int。

heweibig 发表于 2022-8-3 21:40

加入:NOP NOP试试。

juventus9554 发表于 2022-8-3 21:41

可以肯定地说,这个函数没问题

chuxh 发表于 2022-8-3 21:44

问题出在其他地方。

yufe 发表于 2022-8-3 21:46

void delayms(unsigned int tt) {
    unsigned int t;                  //   ?                           
      for(;tt>0;tt--)
{               //少一个
         for(t=230;t>0;t--)      //?      
          {                                                
          ;
          }   
}//少一个

}

heweibig 发表于 2022-8-3 21:48

我觉得问题会不会出现在你调用延时函数主调函数和你定义变量tt这里,把程序在好好检查一下

yufe 发表于 2022-8-3 22:01

好的,我再看看

jiaxw 发表于 2022-8-3 22:03

可以对程序中的函数单步运行看看,看会出现情况

renyaq 发表于 2022-8-3 22:05

湿敏电阻好像用用交流测试

chenho 发表于 2022-8-3 22:07

我觉得问题可能在你的变量名上,t和tt稍微不注意会混乱

pengf 发表于 2022-8-3 22:09

改个变量名试试吧~ 程序没有问题~

supernan 发表于 2022-8-3 22:11

看过了

chuxh 发表于 2022-8-3 22:14

应该不是这个问题,看看其他吧,还有你知道你的那个函数运行了多长时间吗?
页: [1] 2
查看完整版本: 延时程序好像死机了