[STC单片机] c程序

[复制链接]
7621|25
 楼主| 无限追求 发表于 2014-10-17 13:03 | 显示全部楼层 |阅读模式
当主函数中没有while循环的时候  主函数中的程序会循环  谁能解释一下
ayb_ice 发表于 2014-10-17 13:34 | 显示全部楼层
65535+1=65536=0x10000=0000
 楼主| 无限追求 发表于 2014-10-17 13:46 | 显示全部楼层
ayb_ice 发表于 2014-10-17 13:34
65535+1=65536=0x10000=0000

65535+1=65536=0x00000=0000
 楼主| 无限追求 发表于 2014-10-17 14:23 | 显示全部楼层
能细一点吗
ningling_21 发表于 2014-10-17 14:27 | 显示全部楼层
如果不写while()循环,主函数也是一个函数,执行到最下面后自然会返回该函数的最上面继续执行.
 楼主| 无限追求 发表于 2014-10-17 15:27 | 显示全部楼层
ningling_21 发表于 2014-10-17 14:27
如果不写while()循环,主函数也是一个函数,执行到最下面后自然会返回该函数的最上面继续执行. ...

但是他的循环不是顺序的  是无规则的
yklstudent 发表于 2014-10-17 15:27 | 显示全部楼层
时钟又没挂,没理由不继续跑
xyz549040622 发表于 2014-10-17 15:37 | 显示全部楼层
不知道跑哪了,但肯定还是会继续跑
chen_jhhb 发表于 2014-10-17 15:46 | 显示全部楼层
这个有意思
 楼主| 无限追求 发表于 2014-10-17 16:18 | 显示全部楼层
yklstudent 发表于 2014-10-17 15:27
时钟又没挂,没理由不继续跑

继续跑说明程序指针PC没有停  那么指针PC与时钟的关系是怎样的
w522930954 发表于 2014-10-17 16:41 | 显示全部楼层
有些单片机跑飞了会给你复位的。。有些加了看门狗也会给你复位,有些就乱来了。。
nuaabob 发表于 2014-10-17 17:18 | 显示全部楼层
这个是编译器的问题,如果在Turbo C里面写程序,main函数不加while(1),执行完就直接退出了,但是Keil不会,我猜是因为单片机不允许程序执行完毕所以默认就隐含了一个循环吧,楼主可以看一下生成的汇编代码。

本帖子中包含更多资源

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

×
xjjspace 发表于 2014-10-17 17:23 | 显示全部楼层
和单片机类型和编译器都有关系吧。
记得之前有帖子讨论过,while死循环的问题,你可以在坛子里搜搜。
 楼主| 无限追求 发表于 2014-10-17 17:59 | 显示全部楼层
xjjspace 发表于 2014-10-17 17:23
和单片机类型和编译器都有关系吧。
记得之前有帖子讨论过,while死循环的问题,你可以在坛子里搜搜。 ...

好的
 楼主| 无限追求 发表于 2014-10-17 18:02 | 显示全部楼层
nuaabob 发表于 2014-10-17 17:18
这个是编译器的问题,如果在Turbo C里面写程序,main函数不加while(1),执行完就直接退出了,但是Keil不会 ...

默认就隐含了这一个循环  应该就是跑飞了  PC乱了
shcshc1234 发表于 2014-10-17 21:26 | 显示全部楼层
有的mcu主函数回循环有的不会
xlsbz 发表于 2014-10-17 21:44 | 显示全部楼层
坛子里至少两个帖子了 我见过的。好像有个圈圈的。computer00
 楼主| 无限追求 发表于 2014-10-17 22:15 | 显示全部楼层
shcshc1234 发表于 2014-10-17 21:26
有的mcu主函数回循环有的不会

好的
 楼主| 无限追求 发表于 2014-10-17 22:15 | 显示全部楼层
xlsbz 发表于 2014-10-17 21:44
坛子里至少两个帖子了 我见过的。好像有个圈圈的。computer00

好的
dirtwillfly 发表于 2014-10-17 22:46 | 显示全部楼层
也可以使用低功耗模式+定时器来实现循环。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

86

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部