gpt4 book ai didi

c# - netduino 2 上的按钮事件

转载 作者:行者123 更新时间:2023-11-30 20:55:27 25 4
gpt4 key购买 nike

我已经开始在 netduino 2 上进行业余爱好开发。我正在为板载按钮上的中断而苦苦挣扎。我的问题是,每次按下按钮时都会调用多次中断。

    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 是一种定制的数模转换器。这里没什么特别的。

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

最佳答案

欢迎体验嵌入式和电子产品的乐趣!

您遇到的情况称为接触反弹: http://www.elexp.com/t_bounc.htm

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

有两种处理方法。添加去抖动电路或在软件中。通常,软件方法是忽略在第一个几毫秒内发生的所有中断。这里有一篇关于去抖动策略的非常好的论文: http://cseweb.ucsd.edu/classes/sp09/cse140L/slides/debouncing.pdf

关于c# - netduino 2 上的按钮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18301259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com