久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

一個(gè)MCU按鍵如何實(shí)現(xiàn) 長按開機(jī) 和 長按關(guān)機(jī)?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:602673 發(fā)表于 2020-6-20 14:18 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如何使用單獨(dú)按鍵  長按開機(jī)  長按關(guān)機(jī)
長按開機(jī)是用外部中斷喚醒
如何在按鍵按下進(jìn)入外部中斷得時(shí)候 到2秒才執(zhí)行喚醒求大佬給一些代碼看看,這個(gè)卡了一天時(shí)間了,

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:785268 發(fā)表于 2020-6-20 19:36 | 只看該作者
用代碼進(jìn)行條件延遲  延遲3s 即可
回復(fù)

使用道具 舉報(bào)

板凳
ID:190832 發(fā)表于 2020-6-20 21:53 | 只看該作者
試試阻容加比較器,再用外部中斷
回復(fù)

使用道具 舉報(bào)

地板
ID:213173 發(fā)表于 2020-6-21 09:08 | 只看該作者
設(shè)置一個(gè)標(biāo)志,初次上電關(guān)閉外部中斷,其端口作為普通按鍵輸入。當(dāng)按鍵按下達(dá)到預(yù)定時(shí)間等待松手,松手后,標(biāo)志置位,開外部中斷下降沿有效,啟動(dòng)睡眠,如按鍵按下沒有達(dá)到預(yù)定時(shí)間無效。當(dāng)睡眠中按下按鍵喚醒并立即關(guān)閉外部中斷,其端口恢復(fù)為普通按鍵輸入。當(dāng)按鍵按下達(dá)到預(yù)定時(shí)間等待松手,此時(shí)根據(jù)標(biāo)志判斷執(zhí)行開機(jī),標(biāo)志復(fù)位。如按鍵按下沒有達(dá)到預(yù)定時(shí)間則恢復(fù)開外部中斷下降沿有效,啟動(dòng)睡眠。標(biāo)志位是按鍵程序走向的核心!

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
MOVEORDIE + 5 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:569384 發(fā)表于 2020-6-23 11:58 | 只看該作者
if(按下)
{    if(按下未松開標(biāo)志位 == 0)//松開后再進(jìn)行第二次計(jì)數(shù)
    {
        計(jì)數(shù)++;        if(計(jì)數(shù) >= 2s)//2s后確認(rèn)為按下
        {
            計(jì)數(shù) = 0;
            按下未松開標(biāo)志位 = 1;//
            //要執(zhí)行的代碼
            //要執(zhí)行的代碼
            //要執(zhí)行的代碼
            //要執(zhí)行的代碼
        }
    }
}
else//松開或按下未到2s松開
{
    計(jì)數(shù) = 0;//松開就清零
    按下未松開標(biāo)志位 = 1;
}

回復(fù)

使用道具 舉報(bào)

6#
ID:401564 發(fā)表于 2020-6-23 13:49 | 只看該作者
我有匯編的,你要不?
原理是差不多的:
1:先設(shè)定關(guān)閉外部中斷喚醒
2:在開機(jī)狀態(tài)下按下按鍵就開始查詢時(shí)間,時(shí)間到了還沒有松開就關(guān)機(jī),時(shí)間沒有到就松開,就什么也不做
3:關(guān)機(jī)之前開啟外部中斷喚醒,然后再進(jìn)入掉電模式
4:按鍵按下就進(jìn)入中斷并喚醒,查詢時(shí)間,時(shí)間到了還沒有松開就開機(jī),時(shí)間沒有到就松開的,退出中斷之后再次進(jìn)入掉電模式
回復(fù)

使用道具 舉報(bào)

7#
ID:787643 發(fā)表于 2020-6-23 14:41 | 只看該作者
獲取系統(tǒng)時(shí)間,設(shè)置全局標(biāo)志 start_flag ,按鍵中斷配置為雙邊沿觸發(fā),下降沿得時(shí)候獲取一個(gè)系統(tǒng)時(shí)間,記錄到 pressed_time 變量,當(dāng)上升沿觸發(fā)得時(shí)候,用當(dāng)前系統(tǒng)時(shí)間減去 pressed_time,大于2s 啟動(dòng)標(biāo)志設(shè)置為 1,執(zhí)行對(duì)應(yīng)得代碼就可以啦
回復(fù)

使用道具 舉報(bào)

8#
ID:783844 發(fā)表于 2020-6-23 15:44 | 只看該作者
試一下用中斷
回復(fù)

使用道具 舉報(bào)

9#
ID:452950 發(fā)表于 2020-6-25 13:10 | 只看該作者
本帖最后由 xxpp2011 于 2020-6-25 21:33 編輯

while(Key==0)
{
delay(100);
time=time+100;
}
if(time>=2000)執(zhí)行對(duì)應(yīng)操作;
time=0;
回復(fù)

使用道具 舉報(bào)

10#
ID:790159 發(fā)表于 2020-6-26 13:43 | 只看該作者
設(shè)置一個(gè)全局變量,這個(gè)值就一個(gè)延時(shí)量,開機(jī)或者關(guān)機(jī)時(shí)不斷累加一個(gè)變量當(dāng)這個(gè)變量值等于設(shè)定的按鍵值時(shí)就執(zhí)行相應(yīng)的開機(jī)或者關(guān)機(jī)!
回復(fù)

使用道具 舉報(bào)

11#
ID:311846 發(fā)表于 2020-7-18 09:35 | 只看該作者
你所說的喚醒是什么?單片機(jī)不會(huì)關(guān)機(jī)的,只會(huì)進(jìn)入低功效模式,在此模式下關(guān)閉外設(shè)等一系列省電,開啟外部中斷喚醒,一旦接觸到外部電平喚醒即按鍵按下會(huì)立刻喚醒單片機(jī)處理(硬件是否對(duì)按鍵做延時(shí)不考慮的情況下,如果此按鍵只有長按開關(guān)機(jī)的話可以考慮用硬件延時(shí),并不推薦),此時(shí)如果你的喚醒是外面能看到的工作的話,那么單片機(jī)調(diào)用計(jì)時(shí)函數(shù)計(jì)算按鍵是否長按來決定是否開啟外設(shè),否則繼續(xù)進(jìn)入低功效模式
回復(fù)

使用道具 舉報(bào)

12#
ID:228467 發(fā)表于 2020-7-18 10:20 | 只看該作者
權(quán)威人物 發(fā)表于 2020-7-18 09:35
你所說的喚醒是什么?單片機(jī)不會(huì)關(guān)機(jī)的,只會(huì)進(jìn)入低功效模式,在此模式下關(guān)閉外設(shè)等一系列省電,開啟外部中 ...

你好,請問為什么不推薦 硬件延時(shí)電路呢?是成本問題還是可靠性問題?
回復(fù)

使用道具 舉報(bào)

13#
ID:3241 發(fā)表于 2020-7-20 09:45 | 只看該作者

初學(xué)者,學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

14#
ID:311846 發(fā)表于 2020-7-20 15:49 | 只看該作者
上善若水001 發(fā)表于 2020-7-18 10:20
你好,請問為什么不推薦 硬件延時(shí)電路呢?是成本問題還是可靠性問題?

程序能完成的為什么要用硬件增加成本?為了節(jié)省單片機(jī)運(yùn)行兩秒時(shí)間的電嗎?
回復(fù)

使用道具 舉報(bào)

15#
ID:801957 發(fā)表于 2020-7-20 16:15 | 只看該作者
用外部中斷,按鍵設(shè)為雙邊沿觸發(fā)
回復(fù)

使用道具 舉報(bào)

16#
ID:947437 發(fā)表于 2021-7-13 14:20 | 只看該作者
Y_G_G 發(fā)表于 2020-6-23 13:49
我有匯編的,你要不?
原理是差不多的:
1:先設(shè)定關(guān)閉外部中斷喚醒

可以看一下你的匯編程序嗎
回復(fù)

使用道具 舉報(bào)

17#
ID:57657 發(fā)表于 2021-7-13 15:24 | 只看該作者
外部中斷觸發(fā)后打開定時(shí)器中斷(注意中斷優(yōu)先級(jí)),累加按鍵按住的時(shí)間,松開清零,滿2秒開機(jī)。
回復(fù)

使用道具 舉報(bào)

18#
ID:954312 發(fā)表于 2021-7-19 18:48 | 只看該作者
    這里有兩種方案
    1、軟件實(shí)現(xiàn),通過外部IO觸發(fā)中斷喚醒,然后MCU進(jìn)行計(jì)時(shí),不到2s就不響應(yīng),繼續(xù)進(jìn)入休眠模式
    2、硬件實(shí)現(xiàn),外部加個(gè)比較大的電容,到2s,才產(chǎn)生對(duì)應(yīng)的高電平

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

19#
ID:954170 發(fā)表于 2021-7-19 23:45 來自觸屏版 | 只看該作者
這里有兩種方案  1、軟件實(shí)現(xiàn),通過外部IO觸發(fā)中斷喚醒,然后MCU進(jìn)行計(jì)時(shí),不到2s就不響應(yīng),繼續(xù)進(jìn)入休眠模式  2、硬件實(shí)現(xiàn),外部加個(gè)比較大的電容,到2s,才產(chǎn)生對(duì)應(yīng)的高電平
回復(fù)

使用道具 舉報(bào)

20#
ID:928589 發(fā)表于 2021-7-20 08:52 | 只看該作者
790116460 發(fā)表于 2021-7-19 18:48
這里有兩種方案
    1、軟件實(shí)現(xiàn),通過外部IO觸發(fā)中斷喚醒,然后MCU進(jìn)行計(jì)時(shí),不到2s就不響應(yīng),繼續(xù)進(jìn) ...

用電容延時(shí)要考慮 高低溫情況下 電容容量的變化導(dǎo)致 延時(shí)時(shí)間的誤差;同時(shí)電容自身也存在容量誤差;
回復(fù)

使用道具 舉報(bào)

21#
ID:824490 發(fā)表于 2021-7-20 09:19 | 只看該作者
不給代碼,給你說一下按鍵操作的4個(gè)狀態(tài),1、持續(xù)釋放,2、按下瞬間,3、持續(xù)按下,4、釋放瞬間。這4個(gè)狀態(tài)你都能檢測到,長短按對(duì)你來說都不是事了
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: av中文网 | 成人免费视频观看视频 | 亚洲综合资源 | 亚洲精品久久久久中文字幕欢迎你 | 999久久久久久久久6666 | 少妇性l交大片免费一 | 国产精品成人一区二区三区 | 精品久久久久一区二区国产 | 亚洲在线一区二区 | 看羞羞视频免费 | 一区二区三区四区免费观看 | 久久精品99久久 | 免费看91| 中文字幕在线一区 | 国产一区视频在线 | 四虎精品在线 | 欧美福利 | 日日操夜夜操天天操 | 在线一级片 | 欧美日本韩国一区二区 | 中文字幕第三页 | 美女福利视频一区 | 久久高清| 久久久久国产一区二区三区不卡 | 91久久国产综合久久 | 国产精品久久久久一区二区三区 | 国产视频福利一区 | 久久aⅴ乱码一区二区三区 91综合网 | 综合五月 | 免费精品 | 亚洲欧洲精品成人久久奇米网 | 99精品国产一区二区三区 | 欧洲成人午夜免费大片 | 成人av网站在线观看 | 亚洲福利在线观看 | 麻豆av网站 | 国产视频在线一区二区 | 国产精品成人久久久久 | 在线 丝袜 欧美 日韩 制服 | 久久久久久久香蕉 | 日本精品视频一区二区 |