找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機定時器中斷程序問題,while(1);去掉就不無法正常運行

查看數(shù): 7503 | 評論數(shù): 9 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2019-2-16 11:09

正文摘要:

我誤以為程序運行的時候會一直停在這個while(1);循環(huán),但這個while(1);如果去掉的話程序就無法正常運行,不去掉卻能正常運行,求大佬詳解

回復(fù)

ID:338762 發(fā)表于 2019-2-18 18:09
形成死循環(huán),你應(yīng)該多看看函數(shù)的定義
ID:444306 發(fā)表于 2019-2-18 17:36
先學(xué)學(xué)基礎(chǔ)的C語言再說其它的吧。走路沒學(xué)會,還想飛!
ID:319023 發(fā)表于 2019-2-18 16:30
while(1)是循環(huán)執(zhí)行的,去掉后也可以加延時函數(shù)試下定時器中斷。  C語言也是學(xué)習(xí)單片機的基礎(chǔ),有時間還要多看下單片機例程,根據(jù)進(jìn)度一點一點學(xué)起來。
ID:477682 發(fā)表于 2019-2-18 13:49
您的理解是有一定道理的,while語句的作用就是讓他一直在此處運行,有while(1),程序一直運行中,等待定時器中斷的產(chǎn)生,沒有while(1),程序直接運行結(jié)束,定時器中斷就沒有作用了,自然無法正常工作。
ID:158375 發(fā)表于 2019-2-18 13:33
你還是先學(xué)學(xué)基礎(chǔ)的C語言再說其它的吧。走路沒學(xué)會,還想快跑?
ID:474677 發(fā)表于 2019-2-16 15:59
yun8808 發(fā)表于 2019-2-16 12:39
有while(1),程序一直運行中,會進(jìn)定時器中斷,沒有while(1),程序運行結(jié)束,不會進(jìn)定時器,工作就不正常了 ...

main()函數(shù)是自循環(huán)函數(shù),程序不會結(jié)束,但是會反復(fù)中斷初始化而形成死循環(huán)
ID:474677 發(fā)表于 2019-2-16 15:56
2樓說得對,你的程序功能是靠中斷完成的,去掉while(1)后,主函數(shù)一直在不停的進(jìn)行中斷的初始化,無法響應(yīng)中斷!
ID:477097 發(fā)表于 2019-2-16 12:39
有while(1),程序一直運行中,會進(jìn)定時器中斷,沒有while(1),程序運行結(jié)束,不會進(jìn)定時器,工作就不正常了。
ID:248705 發(fā)表于 2019-2-16 12:25
while確實會把程序停在那里,你沒理解錯,但是這里while的作用是讓定時器只初始化一次,如果不加while,定時器會反復(fù)初始化(main本身就是一個循環(huán)),也就沒辦法進(jìn)入中斷,你就看不到現(xiàn)象

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表