大神按鍵處理程式:原著
另一位大神詳細對上面的博文發表的個人看法,並加入防抖
1、未加防抖
unsigned char trg;
unsigned char cont;
void keyread( void )
#define key_mode 0x01 // 模式按鍵
#define key_plus 0x02 // 加
void keyproc(void)
if (cont & key_plus) // 如果「加」按鍵被按著不放
}}
2、加入防抖
//按鍵變數
unsigned char keypressdown=0x00;
unsigned char keyrelease=0x00;
unsigned char lastkey=0x00;
//按鍵掃瞄,定時10ms執行一次
void keyscan(void)
我是新手,看了半天才領會演算法防抖的奇妙
我對程式加注釋
void key_check(void)
void io_read(void)
typedef union
onebits;
}key_type;
currreadkey currkey keytrg keyrel lastkey lastreadkey
初始值: 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
按下消抖: 0x0001 0x0000 0x0000 0x0000 0x0000 0x0001
確認按下: 0x0001 0x0001 0x0001 0x0000 0x0001 0x0001
長按按鍵: 0x0001 0x0001 0x0000 0x0000 0x0001 0x0001
釋放消抖: 0x0000 0x0001 0x0000 0x0000 0x0001 0x0000
確認釋放: 0x0000 0x0000 0x0000 0x0001 0x0000 0x0000
這樣看是不是更能理解了?我只要判斷lastkey、keyrel、keytrg的值就能判斷按鍵所處的狀態,而且通過建立乙個共同體就能不受限制的使用任何乙個引腳,只要 #define key1_in _ra8,巨集定義一下。這裡只需要注意共同體的值就可以了。 frameset 使用心得
欲明白本篇 html徹底剖析 之標記分類,請看 標記一覽 也請先明白圍堵標記與空標記的分別,請看 html概念 框架概念 謂框架便是網頁畫面分成幾個框窗,同時取得多個 url。只需要 即可,面所有框架標記需要放在乙個總起的 html 檔,這個檔案只記錄了該框架如何分割 不會顯示任何資料,所以不必放入...
Access使用心得
今天臨時用access做資料庫,長期用sql server開發習慣了,總結一下現在為止用到的比較大的差異,以後有新的再補了 1 返回字串長度 len s lenb s 前者返回字元數,後者返回位元組數,並且access中text型別字元統一為2位元組,與sql2000不同。2 join的使用 acc...
vmware使用心得
成功在winxp環境中安裝了vista business版本,反之,亦然。可以建立工作組網路連線了,虛擬機器也可以訪問網際網路了。安裝說明 在安裝嚮導中,無論使用哪種網路連線形式,都不影響正確安裝。安裝後,可以編輯本地機和虛擬機器之間的網路連線形式。需要注意三個細節問題 1 網絡卡要設定為 電源啟動...