首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >netduino 2上的按钮事件

netduino 2上的按钮事件
EN

Stack Overflow用户
提问于 2013-08-18 16:28:40
回答 1查看 1.1K关注 0票数 2

我已经在netduino 2上开始了业余爱好的发展,我正在努力解决机上按钮上的中断。我的问题是,每次按下按钮,中断都会被多次调用。

代码语言:javascript
复制
    public static void Main()
    {
        dac = new Dac();
        InterruptPort button = new InterruptPort(Pins.ONBOARD_SW1, true, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeHigh);
        button.OnInterrupt += new NativeEventHandler(button_OnInterrupt);

        Thread.Sleep(Timeout.Infinite);
    }

    static void button_OnInterrupt(uint data1, uint data2, DateTime time)
    {
        if(data2 == 1) 
        {
            dac.nextDACState();
        }
    }

*Dac是一种自定义的数字到模拟转换器。这里没什么花哨的。

这是一个实现错误,可能是一个错误的按钮,闪烁?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-19 16:28:30

欢迎来到joy的嵌入式和电子!

你正在经历的是所谓的接触反弹:bounc.htm

它在所有按钮的使用中都是典型的,是由按钮的机电特性引起的。

处理这个问题的方法有两种。要么增加一个脱节电路,要么在软件中添加。通常,软件的方式是忽略所有发生在第一次中断几毫秒内的中断。这里有一篇很好的关于脱钩策略的论文:http://cseweb.ucsd.edu/classes/sp09/cse140L/slides/debouncing.pdf

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18301259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档