产品输入系统设计:调试,状态机识别和培训
栏目:行业新闻 发布时间:2025-07-20 10:22
With embedded product development, the main input may seem simple, but in order to achieve product level stability and interactive experience, many details need to be considered: hardware jitter, long press/short press/combo recognition, response delays, error-toch tolerance, etc This article will combine the practical experience to focus on key issues of the product level level, including: software de-bounce, basic recognition of the event (clicking, double-clicking, long-press), mechanical-based ideas,并补充了清晰的代码示例。触发时,机械键将形成十毫秒的抖动信号,如图所示:KIF没有处理这些抖动,许多重大事件将能够犯错。有两种典型的软件调试方法:适用于轻质任务,但是在多任务或RTO中不建议阻止HAL_DELAY()。该解决方案适用于RTO或主循环的一段时间,没有阻塞和稳定审阅效果。产品水平系统通常需要支持复杂的联系。示例:简短出版:执行基本操作长按:输入配置/重置模式双击/多键单击:执行特殊功能的关键是准确识别不同的基本时间。一种标准方法是在计时任务中记录按压/发布的时间戳和研究事件。呼叫方法:在Firshing循环中阅读:在产品级别的设计中,代码清晰度和维护非常重要。直接使用变量ESTACK判断的逻辑很容易被混淆。状态机械设计是一个简单的想法:每个主要状态对应于行为转化的某种条件。调试是基础:建议使用定时采样 +滑动过滤器来考虑实时和准确性。事件识别需要清晰的时机:长按,双击等。需要合理的时间窗口和状态分数。州发动机很愉快地扩展:良好的能力EAD,轻松支持许多键,添加基本组合和其他高级功能。避免阻止逻辑:如果它延迟或等待时,则应避免在hohambang或主循环中避免使用。尽管按钮是最基本的输入方法之一,但在产品级别的设计中,它们反映了对系统响应功能,用户体验和设计规范的全面考虑。当然,我们还参考开源密钥网站:https://github.com/murphyzhao/flexiblebutton