如何把菲斯熊猫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,有规律的数据流)。
关于如何做这件事,有什么建议吗?低功耗状态的例子: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
}
}