public override void Set(uint period, uint highTime, Socket.SocketInterfaces.PwmScaleFactor factor) { if (period == 0) { throw new ArgumentException("period"); } if (highTime > period) { throw new ArgumentException("highTime"); } double frequency = 0; switch (factor) { case Socket.SocketInterfaces.PwmScaleFactor.Milliseconds: frequency = 1000 / period; break; case Socket.SocketInterfaces.PwmScaleFactor.Microseconds: frequency = 1000000 / period; break; case Socket.SocketInterfaces.PwmScaleFactor.Nanoseconds: frequency = 1000000000 / period; break; } this.Set(frequency, (double)highTime / (double)period); }
public override void Set(uint period, uint highTime, Socket.SocketInterfaces.PwmScaleFactor factor) { if (_port == null) { _port = new PWM(_channel, period, highTime, (PWM.ScaleFactor)factor, _invert); _port.Start(); _started = true; } else { if (_started) { _port.Stop(); } _port.Scale = (PWM.ScaleFactor)factor; _port.Period = period; _port.Duration = highTime; _port.Start(); _started = true; } }