发新帖我要提问
12
返回列表
打印

按键长按与短按硬件识别

[复制链接]
楼主: DawsonHu
手机看帖
扫描二维码
随时随地手机跟帖
21
yanwen217| | 2015-12-29 14:14 | 只看该作者 回帖奖励 |倒序浏览
dirtwillfly 发表于 2015-12-29 13:54
额。我做智能手环的思路和你不一样。。

请版主赐教!
这个在业内算是通病了,当然归根结底是软件系统写的不好、硬件抗干扰措施不得力,高手们应该处理的更完美,可是操作系统就会有漏洞,就会有死机的情况发生吧

使用特权

评论回复
22
DawsonHu|  楼主 | 2015-12-29 14:31 | 只看该作者
forgot 发表于 2015-12-29 13:54
被搞晕了,死机和复位是两个概念
如果是单片机死机的话,你是无法检测到按键电平变化的,又怎么实现软 ...

恩,是我没描述清楚。我的意思是本打算用软件复位,但是程序死机了,没法软件复位,所以需要硬件复位。

软件是可能存在问题,但是我从硬件方面也备个方案。
目前程序是:按键开机只是让单片机读取一个电平变化,然后退出低功耗,然后软件复位,不包括电源操作。(但是电源部分其中,AD芯片有个功能是需要cpu通讯来确定是否给传感器供电,本身AD芯片的供电时一直存在的)

使用特权

评论回复
23
DawsonHu|  楼主 | 2015-12-29 14:32 | 只看该作者
小鱼儿1045 发表于 2015-12-29 14:10
楼主的软件做法是不是:按键中断,然后退出低功耗,时钟切换的主时钟,工作。偶尔会出现“死机”的情况?? ...

是的,你也遇到过类似的情况吗?

使用特权

评论回复
24
小鱼儿1045| | 2015-12-29 15:14 | 只看该作者
DawsonHu 发表于 2015-12-29 14:32
是的,你也遇到过类似的情况吗?

我遇到过,你能接仿真器吗?用仿真器看看,死机的情况下,是“真死”还是“假死”

使用特权

评论回复
25
windows100| | 2015-12-29 17:18 | 只看该作者
DawsonHu 发表于 2015-12-29 08:07
你好,
现在我是开机的时候回出现死机,也就是软件没法操作了,只能靠硬件进行复位。 ...

一不小心就踩着雷了,原来我没懂:L

使用特权

评论回复
26
cliffboy| | 2015-12-29 17:25 | 只看该作者
还是要找复位源

使用特权

评论回复
27
DawsonHu|  楼主 | 2015-12-30 07:57 | 只看该作者

不是复位,是死机

使用特权

评论回复
28
DawsonHu|  楼主 | 2015-12-30 07:58 | 只看该作者
小鱼儿1045 发表于 2015-12-29 15:14
我遇到过,你能接仿真器吗?用仿真器看看,死机的情况下,是“真死”还是“假死” ...

一直没有复现死机的情况,出现的时候看下。你后来是怎么解决的?
你说的真死和假死分别代表什么?

使用特权

评论回复
29
小鱼儿1045| | 2015-12-30 08:49 | 只看该作者
DawsonHu 发表于 2015-12-30 07:58
一直没有复现死机的情况,出现的时候看下。你后来是怎么解决的?
你说的真死和假死分别代表什么? ...

我那时候仿真的时候发现程序没有死,还在正常运行,就是按键什么的都没反应,到后来才发现的,是在切换到主时钟的时候,出现了问题,主时钟配置未完成,系统自动默认的时钟在跑,32768,所以定时扫描按键还有很多程序其他程序,都以极低的时钟在运行,所以造成了死机的假象

使用特权

评论回复
30
DawsonHu|  楼主 | 2015-12-30 09:15 | 只看该作者
小鱼儿1045 发表于 2015-12-30 08:49
我那时候仿真的时候发现程序没有死,还在正常运行,就是按键什么的都没反应,到后来才发现的,是在切换到 ...

恩,我也很有这个可能。之前我硬件上测试了,晶振时钟还是有的。
那你是怎么解决的?

使用特权

评论回复
31
DawsonHu|  楼主 | 2015-12-30 10:05 | 只看该作者
小鱼儿1045 发表于 2015-12-30 08:49
我那时候仿真的时候发现程序没有死,还在正常运行,就是按键什么的都没反应,到后来才发现的,是在切换到 ...


能告诉下你是怎么解决的吗?

使用特权

评论回复
32
小鱼儿1045| | 2015-12-30 14:30 | 只看该作者
DawsonHu 发表于 2015-12-30 10:05

能告诉下你是怎么解决的吗?

在主程序里面,程序执行一遍就配置一次,不断去配置主时钟

使用特权

评论回复
33
cliffboy| | 2015-12-30 17:10 | 只看该作者
DawsonHu 发表于 2015-12-30 07:57
不是复位,是死机

死机原因找不出来了吗?不找出来也会影响使用体验

使用特权

评论回复
34
DawsonHu|  楼主 | 2015-12-31 08:46 | 只看该作者
cliffboy 发表于 2015-12-30 17:10
死机原因找不出来了吗?不找出来也会影响使用体验

现在主要是怀疑软件上的原因。
MSP430F415  它有个寄存器是软件配置晶振两端的负载电容的。 之前程序在开机时(按键按下,检测下降沿信号),退出低功耗模式,然后又运行了几行其他代码,然后再配置这个负载电容。  我把这个配置晶振两端负载电容 理解成配置主时钟。

修改之后测试是还没出现过死机的情况

使用特权

评论回复
35
cliffboy| | 2016-1-2 17:31 | 只看该作者
DawsonHu 发表于 2015-12-31 08:46
现在主要是怀疑软件上的原因。
MSP430F415  它有个寄存器是软件配置晶振两端的负载电容的。 之前程序在开 ...

这个涉及时钟源,不能乱动

使用特权

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

本版积分规则