大家帮我看看吧,长按时间总是出错,本来是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;
}
}
|