[程序源码] 求助!童锁功能

[复制链接]
3149|20
 楼主| zdzmonkey 发表于 2017-3-30 16:34 | 显示全部楼层 |阅读模式
长按3s后进入童锁功能,按其他键无作用,再按住3s后解除锁定功能
自己的逻辑思路不是很清晰
gx_huang 发表于 2017-3-30 17:16 | 显示全部楼层
这个有什么问题?
3S太短可以加长到6S、10S的
 楼主| zdzmonkey 发表于 2017-3-30 17:30 | 显示全部楼层
gx_huang 发表于 2017-3-30 17:16
这个有什么问题?
3S太短可以加长到6S、10S的

进入锁定后不知道怎么退出
gx_huang 发表于 2017-3-30 17:49 | 显示全部楼层
长按一次锁按键,再次长按解锁,这个实现起来很容易,有什么问题呢,要退出什么么?
解锁加锁无非就是置一个标志位而已。
软件实现办法千千万。
ayb_ice 发表于 2017-3-30 18:00 来自手机 | 显示全部楼层
设置个变量而已
 楼主| zdzmonkey 发表于 2017-3-30 18:24 | 显示全部楼层
if(key==3)
{
uchar lock=0;
                        i=0;
                        while(key_num==1)
                        {
                                delay_50ms(1);
                                i++;
                        }               
                        if(key_num==2&&key==0)
                        {
                                if(flag==1&&i>=30)
                                {
                                        i=0;
                                        key_num=0;
                                        lock=1;
                                        if(lock==1&&h==1)
                                        {
                                                Li5_led();  //控制Li5 LED 灯
                                                h=1;
                                                while(h==1)
                                                {
                                                        if(key==3)
                                                        {
                                                                while(key_num==1)
                                                                {
                                                                        delay_50ms(1);
                                                                        i++;
                                                                }
                                                                if(key_num==2&&key==0)
                                                                        if(flag==1&&i>=30)
                                                                        {
                                                                                i=0;
                                                                                key_num=0;
                                                                                lock=1;
                                                                        }
                                                                        else
                                                                        {
                                                                                i=0;
                                                                                key_num=0;
                                                                                lock=0;
                                                                        }
                                                                        h=lock+h;
                                                                        if(h==2)
                                                                        Li1_led_OFF();                //关闭童锁
                                                        }
                                                }
                                        }
                                }
                                else
                                {
                                        i=0;
                                        key_num=0;
                                        lock=0;
                                }
                        }
                        else
                        {
                                i=0;
                                key_num=0;
                        }
                        i=0;
                        key_num=0;
                }
               
 楼主| zdzmonkey 发表于 2017-3-30 18:25 | 显示全部楼层
还是不能实现
 楼主| zdzmonkey 发表于 2017-3-30 18:43 | 显示全部楼层
逻辑不强,感觉实现起来很复杂
 楼主| zdzmonkey 发表于 2017-3-30 19:48 | 显示全部楼层
ayb_ice 发表于 2017-3-30 18:00
设置个变量而已

怎么实现?
zxq6 发表于 2017-3-30 22:46 来自手机 | 显示全部楼层
触发童锁后,判断是不是处于童锁状态,不是,就进入,是,就退出。so easy
jrcsh 发表于 2017-3-31 01:55 | 显示全部楼层
按下标记    时长标记    处理子程序标记 
HARRY007 发表于 2017-3-31 11:50 | 显示全部楼层
我以前就做过,开机后配置功能,5S没按键按下进入童锁。或者长按童锁3S进入童锁。  长按童锁按键3S解锁…… 蛮好做的,楼主好好想想,思路先理清了~
justtest111 发表于 2017-3-31 13:00 | 显示全部楼层
按键检测和按键处理分开。
进入童锁状态后仅响应解除童锁的按键,其他按键不响应。
NE5532 发表于 2017-3-31 13:10 | 显示全部楼层
主流程都不研究,怎么谈呢?如果能死等3秒,怎么都好做了是不?
 楼主| zdzmonkey 发表于 2017-3-31 14:55 | 显示全部楼层
justtest111 发表于 2017-3-31 13:00
按键检测和按键处理分开。
进入童锁状态后仅响应解除童锁的按键,其他按键不响应。 ...

是这样做的,但是在if语句里面,条件不起作用
coody 发表于 2017-3-31 16:37 | 显示全部楼层
简单啊,童锁键取反一个标志,标志位1,则所有其他键无效。多简单!
 楼主| zdzmonkey 发表于 2017-3-31 18:20 | 显示全部楼层
coody 发表于 2017-3-31 16:37
简单啊,童锁键取反一个标志,标志位1,则所有其他键无效。多简单!

是这样做了,现在是关机之后不能锁,逻辑应该没错误了,代码还要改
 楼主| zdzmonkey 发表于 2017-3-31 18:54 | 显示全部楼层
HARRY007 发表于 2017-3-31 11:50
我以前就做过,开机后配置功能,5S没按键按下进入童锁。或者长按童锁3S进入童锁。  长按童锁按键3S解锁…… ...

关机之后不能锁
coody 发表于 2017-3-31 20:18 | 显示全部楼层
zdzmonkey 发表于 2017-3-31 18:20
是这样做了,现在是关机之后不能锁,逻辑应该没错误了,代码还要改

关机后将童锁标志清零就可以了。
 楼主| zdzmonkey 发表于 2017-3-31 20:46 | 显示全部楼层
coody 发表于 2017-3-31 20:18
关机后将童锁标志清零就可以了。

是的,在标志位清零后也能开机
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

20

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部