Tested SignalGenerator from example
https://docs.ghielectronics.com/software/tinyclr/tutorials/signal-control.html#signal-generator
and used different values (but seems values are not correct)
if i used TimeSpan.FromTicks(10) - this supposed to be 1 uS (microsecond)
after mesasuring i’ve got those close results
var buffer = new[] {
TimeSpan.FromTicks(10), //01 1.25 uS
TimeSpan.FromTicks(10), //02 1.25 uS
TimeSpan.FromTicks(10), //03 1.18 uS
TimeSpan.FromTicks(10), //04 1.31 uS
TimeSpan.FromTicks(8), //05 1.00 uS
TimeSpan.FromTicks(8), //06 1.00 uS
TimeSpan.FromTicks(8), //07 1.06 uS
TimeSpan.FromTicks(8), //08 1.00 uS
TimeSpan.FromTicks(7), //09 0.93 uS
TimeSpan.FromTicks(7), //10 0.93 uS
TimeSpan.FromTicks(7), //11 0.93 uS
TimeSpan.FromTicks(7), //12 1.06 uS
TimeSpan.FromTicks(5), //13 0.62 uS
TimeSpan.FromTicks(5), //14 0.81 uS
TimeSpan.FromTicks(5), //15 0.62 uS
TimeSpan.FromTicks(5), //16 0.62 uS
};
if i used TimeSpan.FromSeconds(0.01) - this supposed to be 10 ms (millisecond)
TimeSpan.FromSeconds(0.01),
TimeSpan.FromSeconds(0.01),
TimeSpan.FromSeconds(0.01),
TimeSpan.FromSeconds(0.01),
TimeSpan.FromSeconds(0.01),
TimeSpan.FromSeconds(0.01),
TimeSpan.FromSeconds(0.01),
TimeSpan.FromSeconds(0.01),
var signalPin = GHIElectronics.TinyCLR.Devices.Gpio.GpioController.GetDefault().OpenPin(GHIElectronics.TinyCLR.Pins.SC20100.GpioPin.PE4);
signalPin.SetDriveMode(GpioPinDriveMode.Output);
int cnt = 0; ;
while (cnt<=1000)
{
signalPin.Write(GpioPinValue.High);
Thread.Sleep(10);
signalPin.Write(GpioPinValue.Low);
Thread.Sleep(10);
cnt++;
}
is more accurate