按键长按与短按硬件识别

[复制链接]
yanwen217 发表于 2015-12-29 14:14 | 显示全部楼层
dirtwillfly 发表于 2015-12-29 13:54
额。我做智能手环的思路和你不一样。。

请版主赐教!
这个在业内算是通病了,当然归根结底是软件系统写的不好、硬件抗干扰措施不得力,高手们应该处理的更完美,可是操作系统就会有漏洞,就会有死机的情况发生吧
 楼主| DawsonHu 发表于 2015-12-29 14:31 | 显示全部楼层
forgot 发表于 2015-12-29 13:54
被搞晕了,死机和复位是两个概念
如果是单片机死机的话,你是无法检测到按键电平变化的,又怎么实现软 ...

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

软件是可能存在问题,但是我从硬件方面也备个方案。
目前程序是:按键开机只是让单片机读取一个电平变化,然后退出低功耗,然后软件复位,不包括电源操作。(但是电源部分其中,AD芯片有个功能是需要cpu通讯来确定是否给传感器供电,本身AD芯片的供电时一直存在的)
 楼主| DawsonHu 发表于 2015-12-29 14:32 | 显示全部楼层
小鱼儿1045 发表于 2015-12-29 14:10
楼主的软件做法是不是:按键中断,然后退出低功耗,时钟切换的主时钟,工作。偶尔会出现“死机”的情况?? ...

是的,你也遇到过类似的情况吗?
小鱼儿1045 发表于 2015-12-29 15:14 | 显示全部楼层
DawsonHu 发表于 2015-12-29 14:32
是的,你也遇到过类似的情况吗?

我遇到过,你能接仿真器吗?用仿真器看看,死机的情况下,是“真死”还是“假死”
windows100 发表于 2015-12-29 17:18 | 显示全部楼层
DawsonHu 发表于 2015-12-29 08:07
你好,
现在我是开机的时候回出现死机,也就是软件没法操作了,只能靠硬件进行复位。 ...

一不小心就踩着雷了,原来我没懂:L
cliffboy 发表于 2015-12-29 17:25 | 显示全部楼层
还是要找复位源
 楼主| DawsonHu 发表于 2015-12-30 07:57 | 显示全部楼层

不是复位,是死机
 楼主| DawsonHu 发表于 2015-12-30 07:58 | 显示全部楼层
小鱼儿1045 发表于 2015-12-29 15:14
我遇到过,你能接仿真器吗?用仿真器看看,死机的情况下,是“真死”还是“假死” ...

一直没有复现死机的情况,出现的时候看下。你后来是怎么解决的?
你说的真死和假死分别代表什么?
小鱼儿1045 发表于 2015-12-30 08:49 | 显示全部楼层
DawsonHu 发表于 2015-12-30 07:58
一直没有复现死机的情况,出现的时候看下。你后来是怎么解决的?
你说的真死和假死分别代表什么? ...

我那时候仿真的时候发现程序没有死,还在正常运行,就是按键什么的都没反应,到后来才发现的,是在切换到主时钟的时候,出现了问题,主时钟配置未完成,系统自动默认的时钟在跑,32768,所以定时扫描按键还有很多程序其他程序,都以极低的时钟在运行,所以造成了死机的假象
 楼主| DawsonHu 发表于 2015-12-30 09:15 | 显示全部楼层
小鱼儿1045 发表于 2015-12-30 08:49
我那时候仿真的时候发现程序没有死,还在正常运行,就是按键什么的都没反应,到后来才发现的,是在切换到 ...

恩,我也很有这个可能。之前我硬件上测试了,晶振时钟还是有的。
那你是怎么解决的?
 楼主| DawsonHu 发表于 2015-12-30 10:05 | 显示全部楼层
小鱼儿1045 发表于 2015-12-30 08:49
我那时候仿真的时候发现程序没有死,还在正常运行,就是按键什么的都没反应,到后来才发现的,是在切换到 ...


能告诉下你是怎么解决的吗?
小鱼儿1045 发表于 2015-12-30 14:30 | 显示全部楼层
DawsonHu 发表于 2015-12-30 10:05

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

在主程序里面,程序执行一遍就配置一次,不断去配置主时钟
cliffboy 发表于 2015-12-30 17:10 | 显示全部楼层
DawsonHu 发表于 2015-12-30 07:57
不是复位,是死机

死机原因找不出来了吗?不找出来也会影响使用体验
 楼主| DawsonHu 发表于 2015-12-31 08:46 | 显示全部楼层
cliffboy 发表于 2015-12-30 17:10
死机原因找不出来了吗?不找出来也会影响使用体验

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

修改之后测试是还没出现过死机的情况
cliffboy 发表于 2016-1-2 17:31 | 显示全部楼层
DawsonHu 发表于 2015-12-31 08:46
现在主要是怀疑软件上的原因。
MSP430F415  它有个寄存器是软件配置晶振两端的负载电容的。 之前程序在开 ...

这个涉及时钟源,不能乱动
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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