突然想起一件大事儿
去年做过几个案子,开机的方法是在AD按键上接一个双向二极管,按键按下时芯片直接供电,同时把芯片的AD按键引脚拉低
当按键按下超过3秒(或其他时间),就让一个IO口输出高电平给三极管的基极,维持电压。这样就成功开机了。
关机的时候直接AD按键采集到0V关机。
一切看起来似乎都没什么毛病,然而要命的是二极管都会有一个压降,这个压降一般是在0.3V以内,运气好可能买到的二极管压降都正常,关键是客户为了省成本往往买的物料都不知是什么鬼,压降不统一,有些超过了0.3V,这样一来几十K的板子就废了一半了。更要命的是天气一冷,二极管的压降会变大!excuse me???模拟电子课好像有讲过?好吧我认了。 这回剩下的一半也废了。
所有机器都是能开机不能关机。问题在于关机的时候那个AD键值范围是0-0.3V,但是这个二极管的压降超过了0.3V,所以导致你按键按下的时候并不是接地,而是接到二极管的正极。所以AD按键再怎么采集也都是大于0.3V,关机指令自然也就执行不到了。
没办法,改吧,改完无线升级呗。
只要把AD按键的0K和3K的消息都做成关机消息即可。
值得注意的是,如果你的按键双击消息也是用0K的值,还需要做以下修改:
USE_SOFT_POWER置 1.
好了就是这么解决的。