欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
基于單片機(jī)定時(shí)器中斷計(jì)時(shí)的按鍵長(zhǎng)按,短按,多擊的寫(xiě)法
[打印本頁(yè)]
作者:
大麥豆
時(shí)間:
2023-6-16 12:13
標(biāo)題:
基于單片機(jī)定時(shí)器中斷計(jì)時(shí)的按鍵長(zhǎng)按,短按,多擊的寫(xiě)法
設(shè)定定時(shí)器1ms進(jìn)入一次中斷,按鍵檢測(cè)口設(shè)為輸入上拉模式,默認(rèn)不按下時(shí)為高電平
PIN_KEY1 為要設(shè)置的按鍵引腳
//--------------------------------------------------------------------------------------------------------------------
//聲明所需的全局變量
bit Key1_Lock = 0;
unsigned char Key1_Up_Time = 0;
unsigned char Key1_Pre_Num = 0;
unsigned int Key1_Pre_Time = 0;
//--------------按鍵功能------------------------
void Key_Pro(void) //1ms進(jìn)一次程序
{
if((!PIN_KEY1)&&(!Key1_Lock))
{
Key1_Up_Time = 0;
Key1_Pre_Time++;
if(Key1_Pre_Time >= 1000) // 1s
{
Key1_Pre_Time = 0;
Key1_Up_Time = 0;
Key1_Pre_Num = 0;
Key1_Lock = 1;
//----------------------------
//這里寫(xiě)長(zhǎng)按后輸出的命令
//----------------------------
}
}
else if(PIN_KEY1)
{
Key1_Lock = 0;
if(Key1_Pre_Time >= 30)
{
Key1_Pre_Num++;
}
Key1_Pre_Time = 0;
Key1_Up_Time++;
if(Key1_Up_Time >= 250)
{
Key1_Up_Time = 0;
if(Key1_Pre_Num)
{
//---------------------
if(Key1_Pre_Num==1)
{
//單擊
}
else if(Key1_Pre_Num==2)
{
//雙擊
}
//--------------------
Key1_Pre_Num = 0;
}
}
}
}
//-----------------------------------------------------------------
這樣就可以把一個(gè)引腳利用到最大化,用于調(diào)試程序也很方便
作者:
Q__Q
時(shí)間:
2023-6-17 14:13
這個(gè)很好 謝謝樓主,昨天看到個(gè)單按鍵 支持長(zhǎng)短按鍵不同功能的,這個(gè)增加了個(gè)功能, 先收藏學(xué)習(xí)下
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1