找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机定时器中断程序问题,while(1);去掉就不无法正常运行

查看数: 7483 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-2-16 11:09

正文摘要:

我误以为程序运行的时候会一直停在这个while(1);循环,但这个while(1);如果去掉的话程序就无法正常运行,不去掉却能正常运行,求大佬详解

回复

ID:338762 发表于 2019-2-18 18:09
形成死循环,你应该多看看函数的定义
ID:444306 发表于 2019-2-18 17:36
先学学基础的C语言再说其它的吧。走路没学会,还想飞!
ID:319023 发表于 2019-2-18 16:30
while(1)是循环执行的,去掉后也可以加延时函数试下定时器中断。  C语言也是学习单片机的基础,有时间还要多看下单片机例程,根据进度一点一点学起来。
ID:477682 发表于 2019-2-18 13:49
您的理解是有一定道理的,while语句的作用就是让他一直在此处运行,有while(1),程序一直运行中,等待定时器中断的产生,没有while(1),程序直接运行结束,定时器中断就没有作用了,自然无法正常工作。
ID:158375 发表于 2019-2-18 13:33
你还是先学学基础的C语言再说其它的吧。走路没学会,还想快跑?
ID:474677 发表于 2019-2-16 15:59
yun8808 发表于 2019-2-16 12:39
有while(1),程序一直运行中,会进定时器中断,没有while(1),程序运行结束,不会进定时器,工作就不正常了 ...

main()函数是自循环函数,程序不会结束,但是会反复中断初始化而形成死循环
ID:474677 发表于 2019-2-16 15:56
2楼说得对,你的程序功能是靠中断完成的,去掉while(1)后,主函数一直在不停的进行中断的初始化,无法响应中断!
ID:477097 发表于 2019-2-16 12:39
有while(1),程序一直运行中,会进定时器中断,没有while(1),程序运行结束,不会进定时器,工作就不正常了。
ID:248705 发表于 2019-2-16 12:25
while确实会把程序停在那里,你没理解错,但是这里while的作用是让定时器只初始化一次,如果不加while,定时器会反复初始化(main本身就是一个循环),也就没办法进入中断,你就看不到现象

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

Powered by 单片机教程网

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