大家幫我看看吧,長按時間總是出錯,本來是3秒左右,很多時候調試查看延時一下就過去,感覺沒有延時,
問題找了很久了,不知道問題在那?單片機是430F247,
/////兩個按鍵 長按和短按 四種方式
/// key_value 1 測試短按 2 測試長按 3 標定短按 4 標定長按
void key_scan(void){
volatile unsigned char temp_counter;
key_value=0;
if(key1&&key2)return;
temp_counter=0;
if(key1==0)
{
delay_ms(8);
if(key1==1) return;
while(!key1)
{
delay_ms(20);
temp_counter++;
if(temp_counter>100)break;
}
if(temp_counter>50)key_value=2;
else key_value = 1;
}
if(key2==0)
{
delay_ms(8);
if(key2==1) return;
while(!key2)
{
delay_ms(20);
temp_counter++;
if(temp_counter>100)break;
}
if(temp_counter>50)key_value=4;
else key_value = 3;
}
}
|