elmot, платка с дотнетом, а дотнет это не си. как работают некоторые вещи на низком уровне особо знать не нужно, например так же как на си не нужно настраивать что-то или тактировать. это с одной стороны очень удобно, с другой можно выхватить .
- Код: Выделить всё • Развернуть
using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using System.IO.Ports;
using System.Text;
namespace MFConsoleApplication1
{
public class Program
{
public static byte[] data;
public static void Main()
{
OutputPort led = new OutputPort((Cpu.Pin)61, false);
SerialPort port;
data = new byte[0];
port = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);
port.Open();
port.DataReceived += new SerialDataReceivedEventHandler(ReceiveData);
while (true)
{
led.Write(true);
Thread.Sleep(1000);
led.Write(false);
Thread.Sleep(1000);
if (data.Length > 0)
{
port.Write(data, 0, data.Length);
data = new byte[0];
byte[] b = Encoding.UTF8.GetBytes(DateTime.Now.ToString());
port.Write(b, 0, b.Length - 1);
port.Flush();
}
}
//port.Close();
//port.Dispose();
}
public static void ReceiveData(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
if(sp.BytesToRead>0)
{
int btr = sp.BytesToRead;
data = new byte[btr];
int i = sp.Read(data, 0, btr);
}
}
}
}
- Код: Выделить всё • Развернуть
using System;
using Microsoft.SPOT;
using System.Threading;
using Microsoft.SPOT.Hardware;
using GHI.Premium.Hardware;
namespace MFConsoleApplication1
{
public class Program
{
static PWM MyFader = new PWM(Cpu.PWMChannel.PWM_3,10000,0.1,false);
public static void Main()
{
double i = 0.0;
while (true)
{
MyFader.DutyCycle = i;
// DutyCycle is not dynamic so we must make a call to Start() to refresh the object
MyFader.Start();
if ((i += 0.1) >= 1.0)
i = 0.0;
Thread.Sleep(10);
}
}
}
}
- Код: Выделить всё • Развернуть
using System.Threading;
using Microsoft.SPOT;
using System;
public class Program
{
static void RunMe(object o)
{
Debug.Print("From timer!");
}
public static void Main()
{
Timer MyTimer =
new Timer(new TimerCallback(RunMe), null, 5000, 1000);
Debug.Print(
"The timer will fire in 5 seconds and then fire priodically every 1 second");
Thread.Sleep(Timeout.Infinite);
}
}
Добавлено спустя 4 минуты 47 секунд:sergKyrnosov, поиском пользуйтесь, помогает. работать с дальномером или управлять одной сервой это элементарно, а вот несколькими сервами... тут подумать нужно. общим поиском, если нужно будет сами воспользуетесь, а пока могу посоветовать поискать тут
http://www.tinyclr.com/codeshare. несколько примеров работы с дальномерами и сервами точно есть.