打印
[程序源码]

帮忙讲解一下这段程序的意思

[复制链接]
808|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
鑫越电子|  楼主 | 2020-8-3 20:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是之前工程用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;
                        }
                }
        }


使用特权

评论回复

相关帖子

沙发
xyz549040622| | 2020-8-3 22:44 | 只看该作者
楼主给的信息太少,我估计这是一段按键处理函数,判断按键按下的时间(system_parameter.Plus_Key_times),进行不同的作用,判断按键的长按和短按的,然后根据
system_parameter.Plus_Key_Long
system_parameter.Plus_Key_Short
这个长按和短按标志进行不同的函数处理的。

使用特权

评论回复
板凳
li880wert| | 2020-8-6 08:55 | 只看该作者
就是一个按键 长短按的处理,写这么复杂,要我写 10来行搞定,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

75

帖子

2

粉丝