找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

一個看似簡單的按鍵問題,卻怎么都弄不明白

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1005338 發(fā)表于 2022-8-7 21:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我想檢測KEY鍵按下4次后,就打開LED燈,程序如下:
        for(i=4;i>0;i--)          //按KEY鍵4次
        {
                delay_ms(800);
                while(KEY==1);             
                i--;
        }

但程序運行非常不穩(wěn)定,實際KEY鍵可能按下2次或者3次,就打開LED了,延時800ms的參數(shù)調(diào)整為500或者1000或者2000,都是這樣。

求高手指點,這到底是為什么?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1005338 發(fā)表于 2022-8-8 10:07 | 只看該作者
早上剛睡醒想明白了,自己回一下吧,我這個循環(huán)中用了兩次:i--,所以只按2下開關(guān)就達(dá)到4次效果
回復(fù)

使用道具 舉報

板凳
ID:123289 發(fā)表于 2022-8-9 10:11 | 只看該作者
還不錯,自己能找到問題。
回復(fù)

使用道具 舉報

地板
ID:811253 發(fā)表于 2022-8-10 16:39 | 只看該作者
這個還有問題吧,試一下長時間按著不放是不是會一次就著了。
回復(fù)

使用道具 舉報

5#
ID:1042823 發(fā)表于 2022-8-24 16:17 | 只看該作者
你這個用if判斷不是更加嗎?但是要注意消抖
回復(fù)

使用道具 舉報

6#
ID:372932 發(fā)表于 2022-8-27 13:52 來自觸屏版 | 只看該作者
這種程在實際應(yīng)用中沒有意義whlie等待松手這個其它事都別干了。
回復(fù)

使用道具 舉報

7#
ID:59202 發(fā)表于 2022-8-28 19:47 | 只看該作者
在for循環(huán)語句中嚴(yán)禁手工修改循環(huán)計數(shù)變量這是必須嚴(yán)格遵守的規(guī)定啊,會造成不可預(yù)知的錯誤的,而且從你的程序看出來你的c語言基礎(chǔ)很差啊,還需要好好修煉學(xué)習(xí)
回復(fù)

使用道具 舉報

8#
ID:170318 發(fā)表于 2022-8-29 08:46 | 只看該作者
換種思維方式實現(xiàn)該功能吧
回復(fù)

使用道具 舉報

9#
ID:189206 發(fā)表于 2022-8-29 16:35 | 只看該作者
用了兩次i--,
回復(fù)

使用道具 舉報

10#
ID:712493 發(fā)表于 2022-8-29 20:52 | 只看該作者
xxxevery 發(fā)表于 2022-8-28 19:47
在for循環(huán)語句中嚴(yán)禁手工修改循環(huán)計數(shù)變量這是必須嚴(yán)格遵守的規(guī)定啊,會造成不可預(yù)知的錯誤的,而且從你的 ...

能說下這個規(guī)定出處?另能說明下為什會造成不可預(yù)知的錯誤?這個for循環(huán)每個語句執(zhí)行都是串行的,又不是并行,沒超那個計數(shù)范圍有什么危險?話說那個變量超了范圍可以使用?
回復(fù)

使用道具 舉報

11#
ID:16671 發(fā)表于 2022-8-29 22:04 | 只看該作者
for中有i--  while中有加了i--,引起
回復(fù)

使用道具 舉報

12#
ID:59202 發(fā)表于 2022-8-29 22:54 | 只看該作者
在林銳博士的《高質(zhì)量c++/c編程指南》里有講到,因為for語句中的循環(huán)計數(shù)變量的控制是編譯器自動生成的語句,如果我們手動又去控制循環(huán)計數(shù)變量的值就有很大可能與編譯器產(chǎn)生的語句有沖突,造成死循環(huán)或系統(tǒng)崩潰等現(xiàn)象
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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