可以学学怎么使用定时器
using System;
using System.Threading;using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using GHIElectronics.Gadgeteer;
namespace my_LED
{
public class my_led
{
static OutputPort lampOutport = new OutputPort((Cpu.Pin)GHI.Hardware.G120.Pin.P1_15,false);
static InterruptPort switchInterrupt = new InterruptPort(
(Cpu.Pin)GHI.Hardware.G120.Pin.P2_10,
false,
Port.ResistorMode.PullUp,
Port.InterruptMode.InterruptEdgeBoth);
public static void Main()
{
switchInterrupt.OnInterrupt += new NativeEventHandler(switchInterrupt_OnInterrupt);
System.Threading.Timer timer = new System.Threading.Timer(
new TimerCallback(flashTick),
null,
5000,
5000);
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
}
static void switchInterrupt_OnInterrupt(uint data1, uint data2, DateTime time)
{
Monitor.Enter(switchInterrupt);
switch (data2)
{
case 0: lampOutport.Write(true); break;
case 1: lampOutport.Write(false); break;
default: break;
}
Monitor.Exit(switchInterrupt);
//throw new NotImplementedException();
}
private static void flashTick(object o)
{
if (!switchInterrupt.Read())
{
return;
}
lampOutport.Write(true);
System.Threading.Thread.Sleep(100);
System.Threading.Monitor.Enter(switchInterrupt);
if (switchInterrupt.Read())
{
lampOutport.Write(false);
}
System.Threading.Monitor.Exit(switchInterrupt);
}
}
}
本文介绍了一个使用.NET Micro Framework实现LED灯定时闪烁的例子。通过结合定时器与外部中断,程序能够在开关控制下自动调整LED状态。该示例展示了如何在嵌入式系统中配置定时器和中断。

被折叠的 条评论
为什么被折叠?



