想知道为什么当我的密码输入错误第二次的时候 error_counts没有按照预想的变为2,error_counts是在main.c最前面定义的,code_1,code_2,code_3一开始初始化是-1,当按下对应的键的时候会进行加一。当密码输入错误时重新开始
/*******************************************************************************
* 函数名 : Key_Function
* 功能 : 针对于按下的键来实现对应的功能
* 输入 : 无
* 返回值 : 无
*******************************************************************************/
void Key_Function()
{
//按下B1键(第一个按键)第一位密码+1,每位密码的范围是0-9
if(keys[0].key_flag)
{
keys[0].key_flag=0;
if(menu==0)
{
//修改密码第一位
code_1++;
if(code_1==10)
code_1=0;
}
}
//按下B2键(第二个按键)第二位密码+1,每位密码的范围是0-9
if(keys[1].key_flag)
{
keys[1].key_flag=0;
if(menu==0)
{
//修改密码第二位
code_2++;
if(code_2==10)
code_2=0;
}
}
//按下B3键(第三个按键)第三位密码+1,每位密码的范围是0-9
if(keys[2].key_flag)
{
keys[2].key_flag=0;
if(menu==0)
{
//修改密码第三位
code_3++;
if(code_3==10)
code_3=0;
}
}
//按下B4键(第四个按键)则确认输入的密码,进行下一步的判断
if(keys[3].key_flag)
{
keys[3].key_flag=0;
//判断密码是否输入正确
if(origin_code/100==code_1 && (origin_code%100)/10==code_2 && origin_code%10==code_3 )
{
//显示输出状态界面
menu=1;
code_correct=1;
error_counts=0;
Open_Led(1);
}
else
{
//显示密码输入界面
code_1=code_2=code_3=-1;
//记录密码连续输入错误次数
error_counts++;
code_correct=-1;
char str[30];
sprintf(str,"error_counts=%d ",error_counts);
LCD_DisplayStringLine(Line7, (u8 *)str);
//密码连续输入错误次数达到三次时LED2发生变化
if(error_counts==3)
{
LCD_DisplayStringLine(Line8, (u8 *)"hello");
Open_Led(2);
}
}
}
}