我正在构建一个小型嵌入式设备。我正在使用复位开关,当按下此按钮超过5秒时,整个设备应复位并清除所有数据并进入出厂复位状态。 我知道这件事发生时应该清楚什么。我想知道的是我如何举办此活动?我的意思是当按下开关时,如何设计系统以知道已经过了5秒,我现在必须重置。我需要任何定时器和中断的高级设计。有人可以帮助我吗?
答案 0 :(得分:0)
取决于设备。但很少有粗略的想法:
设备手册可能会说出“按住开关”(切换)产生的每秒中断次数。如果您有此值,则可以轻松计算5秒。
如果没有,你也需要使用计时器。当您收到第一次“切换”中断并计数最多5秒钟时启动计时器。
请注意,您还应监控“切换”,即“释放开关”。我希望也会有中断。 (可能具有不同的状态值)。 所以当你看到这个中断时,你应该打破上面的循环(你不应该重置)。
希望这有帮助。
答案 1 :(得分:0)
中断驱动意味着低电平,靠近硬件。中断驱动的解决方案,例如裸机微控制器,看起来像这样:
答案 2 :(得分:0)
在中断时使用GPIO可以检测到5S或30S超时。
如果使用rtos, 。中断会将线程从睡眠中唤醒并自行禁用,
。所有线程都会计算按下开关的时间(您定期扫描开关)
。 如果按下开关所需时间在eeprom中设置全局变量/设置,将触发恢复出厂设置功能
。 Else 再次启用中断并使线程进入休眠状态
。另外,使用去抖动电路来避免问题。
还要定义出厂重置是什么意思?
一般有两种,这两种情况我都会帮助使用eeprom
在这种情况下,您对eeprom进行分区,具有工作配置和出厂配置。您将出厂配置复制到工作分区并执行软件重置
在这种情况下,二进制固件blob也将与出厂配置一起存储在安全分区中,并将用于闪存控制器闪存和配置。
全部取决于尺寸/内存和成本。可以用更多的方式设计,我只是列出最简单的例子。
答案 3 :(得分:0)