帮忙讲解一下这段程序的意思
这是之前工程用STM8的一段程序,不懂,麻烦帮忙解释一下。if(system_parameter.Voltage_Group_Key_Flag)//档位
{
if(Read_Key_Voltage_Group == 0)
{
if(system_parameter.Voltage_Group_Key_times < 2000)
{
system_parameter.Voltage_Group_Key_times++;
}
else if(system_parameter.Voltage_Group_Key_times >= 2000)
{
system_parameter.Voltage_Group_Key_times = 0;
system_parameter.Voltage_Group_Key_Long = 1;
system_parameter.Voltage_Group_Key_Short = 0;
system_parameter.Voltage_Group_Key_Flag = 0;
if(system_parameter.ON_OFF_Power)
{
system_parameter.Voltage_Group_LED_Enable_Flag = 1;
}
}
}
else
{
if((system_parameter.Voltage_Group_Key_times > 100)&&(system_parameter.Voltage_Group_Key_times < 1500)&&(system_parameter.Voltage_Group_Key_Cont == 0))
{
system_parameter.Voltage_Group_Key_times = 0;
system_parameter.Voltage_Group_Key_Long = 0;
system_parameter.Voltage_Group_Key_Short = 1;
system_parameter.Voltage_Group_Key_Flag = 0;
if(system_parameter.ON_OFF_Power)
{
system_parameter.Voltage_Group_LED_Enable_Flag = 1;
}
}
else
{
system_parameter.Voltage_Group_Key_times = 0;
system_parameter.Voltage_Group_Key_Long = 0;
system_parameter.Voltage_Group_Key_Short = 0;
system_parameter.Voltage_Group_Key_Flag = 0;
}
}
}
if(system_parameter.Plus_Key_Flag)//加
{
if(Read_Key_Plus == 0)
{
if(system_parameter.Plus_Key_times <= 2000)
{
system_parameter.Plus_Key_times++;
}
else if(system_parameter.Plus_Key_times >= 2000)
{
//system_parameter.Plus_Key_times = 0;
system_parameter.Plus_Key_Long = 1;
system_parameter.Plus_Key_Short = 0;
system_parameter.Plus_Key_Flag = 0;
if(system_parameter.ON_OFF_Power)
{
system_parameter.Up_LED_Enable_Flag = 1;
}
}
}
else
{
if((system_parameter.Plus_Key_times > 100)&&(system_parameter.Plus_Key_times < 1500))
{
system_parameter.Plus_Key_times = 0;
system_parameter.Plus_Key_Long = 0;
system_parameter.Plus_Key_Short = 1;
system_parameter.Plus_Key_Flag = 0;
if(system_parameter.ON_OFF_Power)
{
system_parameter.Up_LED_Enable_Flag = 1;
}
}
else
{
system_parameter.Plus_Key_times = 0;
system_parameter.Plus_Key_Long = 0;
system_parameter.Plus_Key_Short = 0;
system_parameter.Plus_Key_Flag = 0;
}
}
}
楼主给的信息太少,我估计这是一段按键处理函数,判断按键按下的时间(system_parameter.Plus_Key_times),进行不同的作用,判断按键的长按和短按的,然后根据
system_parameter.Plus_Key_Long
system_parameter.Plus_Key_Short
这个长按和短按标志进行不同的函数处理的。 就是一个按键 长短按的处理,写这么复杂,要我写 10来行搞定,
页:
[1]