|
多浪費(fèi)個(gè)變量做按住的計(jì)時(shí),main 循環(huán)中要加 delay_ms 以劃分時(shí)間片
按住計(jì)時(shí)大致寫法是:( 假設(shè) 按住時(shí) key=0 ,松手時(shí) key=1 。 key_count 是 s8 類型,初值為 0)
有了 key_count 就可以玩不少花樣,比方說(shuō)去抖、判斷按下瞬間、判斷松開(kāi)瞬間。而且 main 程序邏輯并未阻塞,只是靠 count 做計(jì)數(shù),下述代碼對(duì)并發(fā)性事務(wù)毫無(wú)阻塞。
if( key==0)
{ if(key_count==0) do_press_key(); if(key_count<100) key_count++; }
else
{ if(key_count>0) do_release_key(); key_count=0; }
(補(bǔ)充:例如去抖需要8毫秒,并且 main 循環(huán)每 ms 呼叫上述代碼,就需要修改為下述形式
if( key==0)
{ if(key_count==8) do_press_key(); if(key_count<100) key_count++; }
else
{ if(key_count>8) do_release_key(); key_count=0; }
)
|
|