2125|18

3295

帖子

0

资源

纯净的硅(中级)

为什么不是只执行一次 [复制链接]

 
2.png
我写了一个读写24C256的程序。
先往里写3个数据,再读出来。
如果和写的一致,就让指示灯闪烁一次。
我感觉我的程序执行结果,要么灯不闪,要么闪一次。
可是代码烧进去,灯不停滴闪。
我没有仿真器,只有烧写器。看门狗关闭了。
我搞不懂怎么回事?请高手指教,谢谢!上面的程序后面就是一个空的while循环了、



个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复

682

帖子

108

资源

纯净的硅(中级)

wihle(1)
{
   ;
}

while里面没东西,不知道会不会停住。

点评

可能和编译器有关? 430不清楚,51的话,不带花括号肯定要有分号,不加分号有花括号的话,花括号里面加和不加分号编译的机器码都是80FE(也就是SJMP 0xFE往回跳转2个地址,也就是一个死循环)  详情 回复 发表于 2017-10-27 16:51
我理解的,应该会停住啊  详情 回复 发表于 2017-10-27 16:12

回复

3295

帖子

0

资源

纯净的硅(中级)

gs001588 发表于 2017-10-27 16:11
wihle(1)
{
   ;
}

while里面没东西,不知道会不会停住。

我理解的,应该会停住啊

点评

不能说你理解的应该会停,看一下汇编代码,是死循环,还是跑飞或复位了。  详情 回复 发表于 2017-10-27 17:46
谁告诉你 会停的?  详情 回复 发表于 2017-10-27 16:29
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复

2058

帖子

8

资源

五彩晶圆(初级)

单片机某种原因一直在复位?

点评

如果真是这样的话,我把延时时间加长一倍,应该就不闪了。 我试一下。  详情 回复 发表于 2017-10-27 16:27
个人签名坐而言不如起而行

回复

3295

帖子

0

资源

纯净的硅(中级)

wsmysyn 发表于 2017-10-27 16:20
单片机某种原因一直在复位?

如果真是这样的话,我把延时时间加长一倍,应该就不闪了。
我试一下。

点评

关于是 while(1) { } 还是 while(1) { ; } 不知道是否和编译器有关 430不清楚,51的话,在keil下不带花括号肯定要有分号,不加分号有花括号的话,花括号里面加和不加分号编译的机器码都是80FE(也就是SJMP  详情 回复 发表于 2017-10-27 16:54
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复

1303

帖子

4

资源

纯净的硅(高级)

chenbingjy 发表于 2017-10-27 16:12
我理解的,应该会停住啊

谁告诉你 会停的?

点评

你的意思不会停吗?空的while循环不停会怎么样?  详情 回复 发表于 2017-10-27 16:32
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友

回复

3295

帖子

0

资源

纯净的硅(中级)

果然灯不闪了,就是复位了。
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复

3295

帖子

0

资源

纯净的硅(中级)

ywlzh 发表于 2017-10-27 16:29
谁告诉你 会停的?

你的意思不会停吗?空的while循环不停会怎么样?

点评

当真一点调试手段都没有,你这样遇到问题就迷茫的心态。以后怎么办呀? [attachimg]327198[/attachimg] [attachimg]327199[/attachimg]  详情 回复 发表于 2017-10-27 16:42
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复

1303

帖子

4

资源

纯净的硅(高级)

chenbingjy 发表于 2017-10-27 16:32
你的意思不会停吗?空的while循环不停会怎么样?

当真一点调试手段都没有,你这样遇到问题就迷茫的心态。以后怎么办呀?

while1.png

B指令.png

点评

真没有啊  详情 回复 发表于 2017-10-27 16:45
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友

回复

3295

帖子

0

资源

纯净的硅(中级)

ywlzh 发表于 2017-10-27 16:42
当真一点调试手段都没有,你这样遇到问题就迷茫的心态。以后怎么办呀?

真没有啊
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复

2058

帖子

8

资源

五彩晶圆(初级)

gs001588 发表于 2017-10-27 16:11
wihle(1)
{
   ;
}

while里面没东西,不知道会不会停住。

可能和编译器有关?
430不清楚,51的话,不带花括号肯定要有分号,不加分号有花括号的话,花括号里面加和不加分号编译的机器码都是80FE(也就是SJMP 0xFE往回跳转2个地址,也就是一个死循环)
个人签名坐而言不如起而行

回复

2058

帖子

8

资源

五彩晶圆(初级)

chenbingjy 发表于 2017-10-27 16:27
如果真是这样的话,我把延时时间加长一倍,应该就不闪了。
我试一下。

关于是
while(1)
{
}
还是
while(1)
{
;
}
不知道是否和编译器有关
430不清楚,51的话,在keil下不带花括号肯定要有分号,不加分号有花括号的话,花括号里面加和不加分号编译的机器码都是80FE(也就是SJMP 0xFE往回跳转2个地址,也就是一个死循环)
不知道430下是什么样,生成了什么样的代码,可以看一下反汇编代码看看是不是有区别。

点评

加分号和不加分号一样  详情 回复 发表于 2017-10-27 17:02
个人签名坐而言不如起而行

回复

3295

帖子

0

资源

纯净的硅(中级)

wsmysyn 发表于 2017-10-27 16:54
关于是
while(1)
{
}
还是
while(1)
{
;
}
不知道是否和编译器有关
430不清楚,51的话,在keil ...

加分号和不加分号一样

点评

1、确认开发板供电能力足够,不是产生了POR 2、尽量程序写短些,方便调试,其他无关的都注释掉, 3、关掉看门狗,外部中断等,避免进入中断 4、确定程序没问题,或者从汇编代码确认每一步执行的都是明确的,是你  详情 回复 发表于 2017-10-27 17:14
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复

2058

帖子

8

资源

五彩晶圆(初级)

chenbingjy 发表于 2017-10-27 17:02
加分号和不加分号一样

1、确认开发板供电能力足够,不是产生了POR
2、尽量程序写短些,方便调试,其他无关的都注释掉,
3、关掉看门狗,外部中断等,避免进入中断
4、确定程序没问题,或者从汇编代码确认每一步执行的都是明确的,是你想要的结果
基本上也是这几步
今天刚好遇到了很奇怪的问题,8051内核的一个片子,编译生成都没问题,但是就是不符合预期,后来去看汇编代码发现有错误的地方。。少引用了一个库文件,导致编译出来的文件就是不正确的,只看keil编译生成没有警告没有报错还是不够的。。。

点评

无关的去掉了,看门狗中断都关了。 只是没法调试。  详情 回复 发表于 2017-10-27 17:56
个人签名坐而言不如起而行

回复

682

帖子

108

资源

纯净的硅(中级)

chenbingjy 发表于 2017-10-27 16:12
我理解的,应该会停住啊

不能说你理解的应该会停,看一下汇编代码,是死循环,还是跑飞或复位了。

回复

3295

帖子

0

资源

纯净的硅(中级)

wsmysyn 发表于 2017-10-27 17:14
1、确认开发板供电能力足够,不是产生了POR
2、尽量程序写短些,方便调试,其他无关的都注释掉,
3、关 ...

无关的去掉了,看门狗中断都关了。
只是没法调试。

点评

手头没有示波器万用表等仪器么? 实在不行编写点灯程序也可以, 慢慢往上加代码,一步步排除, 总会有办法的。  详情 回复 发表于 2017-10-27 19:02
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复

2058

帖子

8

资源

五彩晶圆(初级)

chenbingjy 发表于 2017-10-27 17:56
无关的去掉了,看门狗中断都关了。
只是没法调试。

手头没有示波器万用表等仪器么?
实在不行编写点灯程序也可以,
慢慢往上加代码,一步步排除,
总会有办法的。
个人签名坐而言不如起而行

回复

3648

帖子

11

资源

五彩晶圆(高级)

可以在一些地方,加串口打印信息。根据信息判断单片机是否不停重启。

点评

已搞好。看门狗复位。 一开始关闭了看门狗,后来又打开了。  详情 回复 发表于 2017-10-31 16:10

回复

3295

帖子

0

资源

纯净的硅(中级)

ienglgge 发表于 2017-10-31 14:25
可以在一些地方,加串口打印信息。根据信息判断单片机是否不停重启。

已搞好。看门狗复位。
一开始关闭了看门狗,后来又打开了。
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

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

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表