看板 ASM 關於我們 聯絡資訊
各位先進大家好 一般在按鈕開關MCU都會做防彈跳(消抖),Timer+狀態機之類的,只需判斷是否按下,不 判斷長短壓、連按之類的。 若是一個兩個開關還好,但是增加到20個開關對應20個I/O時,請問各位先進會如何處理 呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.214.128.51 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1516335876.A.680.html
zxzx8059: 目前還沒有很好的想法,最慘就是土法煉鋼,相關的code 01/19 12:26
zxzx8059: 複製20份Orz 01/19 12:26
dsplab: 每個按鍵併聯上0.1uF的電容 01/19 13:03
zxzx8059: 改硬體要重新送認證... 目前的狀況是io被emi打到讓mcu以 01/19 15:08
zxzx8059: 為開關開了 01/19 15:08
chuegou: debounce(Button_struct* pbutton) 01/19 16:12
chuegou: 相關參數封裝成結構就可以了 01/19 16:12
zxzx8059: 謝謝,我想一想 01/19 18:04
lion21: 改架構吧 我認為可以更好 01/21 22:57
TWkobe: 為什麼20個要 debounce 難不成會同時? 01/24 02:00
TWkobe: 作成key pad然後用int,timer即可 01/24 02:01
zxzx8059: 因為是20個實體的開關機構 01/24 09:41
TWkobe: 基本上不太可能多按扭同時按下 timer是夠用的 01/24 11:34
TWkobe: 只要某個按扭按下 觸發int啟動isr 01/24 11:35
TWkobe: 然後啟動timer即可 多按扭就可以用array紀錄status 01/24 11:36
TWkobe: 不過未何需要20份同樣的code? 01/24 11:38
zxzx8059: 原本負責的同事在國外出差,用的mcu我沒用過架構不了解 01/24 13:14
zxzx8059: ,原定對應的計畫客戶說不行 01/24 13:14
zxzx8059: 這週就要測試,所以就先這樣改,能測過才會繼續優化寫法 01/24 13:16
zxzx8059: ,產品類似儀表開關,一次動到很多個是有可能的 01/24 13:16
stupid0319: 用光軸 01/26 12:16
shinfon: 硬件消抖像是樓上說的電容(不推薦)或是軟件消抖 02/18 00:49
wang3166: 74922 這個IC可以試看看,要判斷狀態 建議用結構體 02/21 15:55