Exemple #1
0
            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);
            }
Exemple #2
0
        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;
            }
        }