如何把菲斯熊猫II放到'睡觉'模式通过按钮控制

本文关键字:模式 睡觉 控制 按钮 熊猫 II 放到 | 更新日期: 2023-09-27 18:15:52

我有一个Fez Panda 2,一个简单的开关连接到引脚Di20。我把它声明为

static InputPort MySwitch = new InputPort((Cpu_Pin)FEZ_Pin.Digital.Di20, false, Port.ResistorMode.PullUp);

我的程序中有几个线程,其中一个运行while(true)块,我想在其中使用:

while(true)
{
     if(MySwitch.Read()== false)
     {
        //put FEZ to sleep
        LED.State = LED.LedState.Off; //I have an LED class to set LED on or off
     }
     else
     {
        //wake up FEZ
        LED.State = LED.LedState.Off;
     }
}

关于我如何才能实现这一点,使Fez将"休眠",直到这个按钮被改变的想法吗?

我听说过允许中断端口,但我不确定这在这种情况下是否有用/可行。我有几个COM端口连接,并希望这些连接"关闭",因此"停止"所有传输。这是由于这些串行端口,它证明很难"只是使用中断端口",以及我需要"禁用"那里的通信(串行使用COM1, COM3和COM4,有规律的数据流)。

关于如何做这件事,有什么建议吗?

如何把菲斯熊猫II放到'睡觉'模式通过按钮控制

低功耗状态的例子:https://www.ghielectronics.com/docs/141/low-power

using Microsoft.SPOT.Hardware;
using System;
public class Program
{
    public static void Main()
    {
        var interrupt = new InterruptPort(Cpu.Pin.GPIO_Pin0, true, Port.ResistorMode.PullUp, Port.InterruptMode.InterruptEdgeHigh);
        interrupt.OnInterrupt += interrupt_OnInterrupt;
        PowerState.Sleep(SleepLevel.DeepSleep, HardwareEvent.OEMReserved1);
        ///Continue on with your program here
    }
    private static void interrupt_OnInterrupt(uint data1, uint data2, DateTime time)
    {
        //Interrupted
    }
}