我有一个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,常规数据流动)。
有关如何解决此问题的任何建议?
答案 0 :(得分:0)
下面的低功耗状态示例: 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
}
}