我正在尝试重写一些我已经在C#中为Arduino使用的代码,以便在Raspberry Pi 3(Windows 10 IOT)上使用。我遇到的Arduino代码如下:
void loop()
{
while(true)
{
Step();
delay(100);
}
}
void Step()
{
digitalWrite(StepPin, HIGH); //Sets the output to HIGH
delayMicroseconds(2000); //Waits 2ms
digitalWrite(StepPin, LOW); //Sets the output to LOW
}
此代码用于使用A4988步进驱动器控制步进电机。代码目标是每100ms给驱动板一个2ms的脉冲。
到目前为止,我在C#中所做的是:
public void Runner()
{
while(true)
{
Step();
//100ms delay here
}
}
public void Step()
{
StepPin.Write(GpioPinValue.High);
//2ms delay here
StepPin.Write(GpioPinValue.Low);
}
我已经尝试过Thread.Sleep(),但是它似乎不合适,而且看起来也不太好:
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
while(stopwatch.ElapsedMilliseconds < 2) ;
实现这种延迟的最佳方法是什么?