《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > FPGA按鍵防抖動(dòng),最精簡(jiǎn)的寫(xiě)法只有10行

FPGA按鍵防抖動(dòng),最精簡(jiǎn)的寫(xiě)法只有10行

2015-10-15
關(guān)鍵詞: FPGA 抖動(dòng)

  最近學(xué)了FPGA 一段時(shí)間,想自己做個(gè)真實(shí)的東西,筆者也是務(wù)實(shí)求真的人,呵呵。首先就選擇了一個(gè)數(shù)字鐘,當(dāng)我昨晚了計(jì)數(shù)器模塊,做按鍵校準(zhǔn)的時(shí)候,就發(fā)現(xiàn)按鍵抖動(dòng)的很厲害,沒(méi)有C 語(yǔ)言做防抖動(dòng)那么簡(jiǎn)單,因此我參考了網(wǎng)上很多博主的觀點(diǎn),總結(jié)了自己認(rèn)為最簡(jiǎn)單,最精簡(jiǎn)的一個(gè)寫(xiě)法,如下: 進(jìn)程模塊內(nèi)代碼只有10行。哈哈
  reg key_reg1,key_reg2,key_out;
  always @( posedge clk)//CLK 50M
  begin
  count2<=count2+1;
  if(count2==500000)
  begin
  key_reg1<=key1;
  count2<=0;
  end
  key_reg2<=key_reg1;
  key_out<=key_reg2&(!key_reg1);
  end
  意思為定義2個(gè)寄存器,存儲(chǔ)按鍵在2個(gè)周期內(nèi)的數(shù)據(jù),計(jì)數(shù)器是決定按鍵的采樣頻率,如果我們把按鍵的采樣頻率調(diào)高,那么 按鍵就會(huì)有2次相應(yīng),我試過(guò)吧計(jì)數(shù)器去掉,但是一直都是雙數(shù)增加,很讓我費(fèi)解,在苦思冥想之際,悟出了可以通過(guò)延時(shí),吧后面松手的一個(gè)電平跳變?yōu)V掉,哈哈!!頓時(shí)給大家分享下最簡(jiǎn)單的防抖動(dòng),
  key1 是低電平按下,當(dāng)按下的時(shí)候,  key_out輸出的是一個(gè)高電平。這個(gè)需要大家注意。
  如有bug 希望大家拋磚

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。