打印
[程序源码]

求助!童锁功能

[复制链接]
2528|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 | 只看该作者
长按一次锁按键,再次长按解锁,这个实现起来很容易,有什么问题呢,要退出什么么?
解锁加锁无非就是置一个标志位而已。
软件实现办法千千万。

使用特权

评论回复
5
ayb_ice| | 2017-3-30 18:00 | 只看该作者
设置个变量而已

使用特权

评论回复
6
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;
                }
               

使用特权

评论回复
7
zdzmonkey|  楼主 | 2017-3-30 18:25 | 只看该作者
还是不能实现

使用特权

评论回复
8
zdzmonkey|  楼主 | 2017-3-30 18:43 | 只看该作者
逻辑不强,感觉实现起来很复杂

使用特权

评论回复
9
zdzmonkey|  楼主 | 2017-3-30 19:48 | 只看该作者
ayb_ice 发表于 2017-3-30 18:00
设置个变量而已

怎么实现?

使用特权

评论回复
10
zxq6| | 2017-3-30 22:46 | 只看该作者
触发童锁后,判断是不是处于童锁状态,不是,就进入,是,就退出。so easy

使用特权

评论回复
11
jrcsh| | 2017-3-31 01:55 | 只看该作者
按下标记    时长标记    处理子程序标记 

使用特权

评论回复
12
HARRY007| | 2017-3-31 11:50 | 只看该作者
我以前就做过,开机后配置功能,5S没按键按下进入童锁。或者长按童锁3S进入童锁。  长按童锁按键3S解锁…… 蛮好做的,楼主好好想想,思路先理清了~

使用特权

评论回复
13
justtest111| | 2017-3-31 13:00 | 只看该作者
按键检测和按键处理分开。
进入童锁状态后仅响应解除童锁的按键,其他按键不响应。

使用特权

评论回复
14
NE5532| | 2017-3-31 13:10 | 只看该作者
主流程都不研究,怎么谈呢?如果能死等3秒,怎么都好做了是不?

使用特权

评论回复
15
zdzmonkey|  楼主 | 2017-3-31 14:55 | 只看该作者
justtest111 发表于 2017-3-31 13:00
按键检测和按键处理分开。
进入童锁状态后仅响应解除童锁的按键,其他按键不响应。 ...

是这样做的,但是在if语句里面,条件不起作用

使用特权

评论回复
16
coody| | 2017-3-31 16:37 | 只看该作者
简单啊,童锁键取反一个标志,标志位1,则所有其他键无效。多简单!

使用特权

评论回复
17
zdzmonkey|  楼主 | 2017-3-31 18:20 | 只看该作者
coody 发表于 2017-3-31 16:37
简单啊,童锁键取反一个标志,标志位1,则所有其他键无效。多简单!

是这样做了,现在是关机之后不能锁,逻辑应该没错误了,代码还要改

使用特权

评论回复
18
zdzmonkey|  楼主 | 2017-3-31 18:54 | 只看该作者
HARRY007 发表于 2017-3-31 11:50
我以前就做过,开机后配置功能,5S没按键按下进入童锁。或者长按童锁3S进入童锁。  长按童锁按键3S解锁…… ...

关机之后不能锁

使用特权

评论回复
19
coody| | 2017-3-31 20:18 | 只看该作者
zdzmonkey 发表于 2017-3-31 18:20
是这样做了,现在是关机之后不能锁,逻辑应该没错误了,代码还要改

关机后将童锁标志清零就可以了。

使用特权

评论回复
20
zdzmonkey|  楼主 | 2017-3-31 20:46 | 只看该作者
coody 发表于 2017-3-31 20:18
关机后将童锁标志清零就可以了。

是的,在标志位清零后也能开机

使用特权

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

本版积分规则

4

主题

20

帖子

0

粉丝