欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3843|回復(fù): 15
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)C語(yǔ)言程序最后的這個(gè)while起什么作用?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:761819 發(fā)表于 2020-5-26 17:48 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式



它這里的while起什么作用啊?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:761819 發(fā)表于 2020-5-26 17:50 | 只看該作者

回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2020-5-26 18:22 | 只看該作者
等你松手
回復(fù)

使用道具 舉報(bào)

地板
ID:761825 發(fā)表于 2020-5-26 18:35 | 只看該作者
您好,意思是當(dāng)K1=0(!k1=1)的時(shí)候程序會(huì)在這里無(wú)限循環(huán),原地等待;當(dāng)k1=1時(shí)跳出循環(huán),返回主程序。
回復(fù)

使用道具 舉報(bào)

5#
ID:94031 發(fā)表于 2020-5-26 18:39 | 只看該作者
回復(fù)

使用道具 舉報(bào)

6#
ID:155507 發(fā)表于 2020-5-26 18:58 | 只看該作者
按鍵松手檢查  按鍵已抬起
回復(fù)

使用道具 舉報(bào)

7#
ID:282850 發(fā)表于 2020-5-26 19:23 | 只看該作者
當(dāng)kl口線為1時(shí),什么都不做。沒(méi)有什么意義。
回復(fù)

使用道具 舉報(bào)

8#
無(wú)效樓層,該帖已經(jīng)被刪除
9#
ID:342911 發(fā)表于 2020-5-26 19:57 | 只看該作者
等待用戶松開按鍵

keypress是按鍵檢測(cè)函數(shù),k1 == 0時(shí)代表按鍵按下

while中判斷條件是“!k1”,也就是按鍵抬起k1 == 1時(shí),!k為假,才會(huì)退出循環(huán),否則一直死循環(huán)等待用戶松開按鍵,沒(méi)有這個(gè)處理當(dāng)按下不放時(shí)就會(huì)造成不斷觸發(fā)。
回復(fù)

使用道具 舉報(bào)

10#
ID:239611 發(fā)表于 2020-5-26 20:15 | 只看該作者
等待按鍵釋放,當(dāng)按鍵一直按下,K1==0,循環(huán)等待;當(dāng)按鍵釋放,K1==1, 結(jié)束循環(huán)。
回復(fù)

使用道具 舉報(bào)

11#
ID:307407 發(fā)表于 2020-5-26 21:00 | 只看該作者
按鍵在按下的時(shí)候有大約幾個(gè)毫秒的抖動(dòng),
回復(fù)

使用道具 舉報(bào)

12#
ID:760179 發(fā)表于 2020-5-26 21:19 來(lái)自觸屏版 | 只看該作者
當(dāng)k1值不為零時(shí),跳出循環(huán)
回復(fù)

使用道具 舉報(bào)

13#
無(wú)效樓層,該帖已經(jīng)被刪除
14#
ID:307407 發(fā)表于 2020-5-26 21:24 | 只看該作者
樓主你這應(yīng)該是獨(dú)立按鍵防抖動(dòng)程序,我首先講一下獨(dú)立按鍵掃描原理:
  當(dāng)按鍵k1按下時(shí)會(huì)有幾個(gè)毫秒的抖動(dòng),也就是不會(huì)立馬為低電平,只有過(guò)了這個(gè)時(shí)間段才會(huì)徹底穩(wěn)定在低電平,當(dāng)按鍵松開時(shí)k1又會(huì)回到高電平。
我再啰嗦一下while語(yǔ)句用法:
  while是一個(gè)循環(huán)語(yǔ)句,如 while(1); 就是一個(gè)死循環(huán)語(yǔ)句,程序在里面出不來(lái),我們知道在c語(yǔ)言里規(guī)定“0”為假,非“0”為真,這里括號(hào)里是“1”,也就是真,那么就相當(dāng)于 while(真); ,程序是出不來(lái)的。
while起什么作用?
  回到樓主的程序,假設(shè)程序從21行語(yǔ)句開始,當(dāng)按鍵k1按下時(shí),k1為低電平,滿足if條件語(yǔ)句,程序進(jìn)而調(diào)到22行,這里的delay語(yǔ)句延時(shí)消抖,前面也講過(guò)為什么消抖,程序進(jìn)而到23行,這里又是一個(gè)if語(yǔ)句,但這個(gè)if語(yǔ)句不能少。此時(shí)按鍵還沒(méi)松開,但是已趨于穩(wěn)定,穩(wěn)定在低電平,運(yùn)行的24行……然后到26行,由于此時(shí)K1為低電平,我用“0”代替,那么 !k1 為“1”,while(!k1)相當(dāng)于while(真),程序跳不出去,只有當(dāng)松開按鍵改變k1的電平才能跳出這個(gè)循環(huán)。如果不在這里設(shè)置while(!k1),那么程序會(huì)一直跑,24行的led會(huì)一直閃。
回復(fù)

使用道具 舉報(bào)

15#
ID:452950 發(fā)表于 2020-5-26 21:28 | 只看該作者
當(dāng)K1等于0時(shí)循環(huán),當(dāng)K1等于1時(shí)跳出循環(huán)。
回復(fù)

使用道具 舉報(bào)

16#
ID:579397 發(fā)表于 2020-5-26 21:31 | 只看該作者
等待按鍵釋放
回復(fù)

使用道具 舉報(bào)

17#
ID:761989 發(fā)表于 2020-5-26 21:34 | 只看該作者
最后這個(gè)while就是 檢測(cè)按鍵k1是否被釋放 的作用
回復(fù)

使用道具 舉報(bào)

18#
ID:761989 發(fā)表于 2020-5-26 21:36 | 只看該作者
最后這個(gè)while就是 檢測(cè)按鍵k1是否被釋放 的作用
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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