NETMF_Autopilot/Hardware/ServoController.cs

37 lines
918 B
C#
Raw Permalink Normal View History

2018-12-05 09:50:00 +00:00
using System;
using Microsoft.SPOT;
using GHIElectronics.NETMF.Hardware;
using GHIElectronics.NETMF.FEZ;
using System.Threading;
namespace PlaneOnBoardSoftware
{
class ServoController
{
float _position = 0;
float usedAngle = 0;
PWM servoPwm;
public ServoController(PWM.Pin ServoPin, float Angle)
{
servoPwm = new PWM(ServoPin);
this.Position = 0;
usedAngle = Angle / 2;
}
public float Position
{
get {
return _position;
}
set {
_position = value;
if (_position > usedAngle) _position = usedAngle;
if (_position < -usedAngle) _position = -usedAngle;
servoPwm.SetPulse(20000000, (uint)(1500000 + _position / 90 * 1250000));
}
}
}
}