/// <summary> /// Constructor /// </summary> /// <param name="io60p16">The IO60 the port is on.</param> /// <param name="pin">Pin to be created</param> /// <param name="resisterMode">Desired resistor mode for the pin to be constructed</param> public InputPort(IO60P16 io60p16, IOPin pin, ResistorMode resisterMode) { _io60p16 = io60p16; _portId = _io60p16.GetPortNumber(pin); _pinId = _io60p16.GetPinNumber(pin); if (_io60p16.IsPinReserved(_portId, _pinId)) { throw new Exception("This pin has already been reserved"); } _io60p16.MakePinInput(_portId, _pinId, resisterMode); _io60p16.port_reserve[_portId] |= (byte)(1 << _pinId); }
/// <summary> /// Constructor /// </summary> /// <param name="io60p16">The IO60 the port is on.</param> /// <param name="pin">The pin to be constructed</param> /// <param name="tickWidth">The desired width between ticks</param> public PWM(IO60P16 io60p16, PWMPin pin, TickWidth tickWidth) { _io60p16 = io60p16; _portId = _io60p16.GetPortNumber((IOPin)pin); _pinId = _io60p16.GetPinNumber((IOPin)pin); if (_io60p16.IsPinReserved(_portId, _pinId)) { throw new Exception("This pin has already been reserved");// reserve already } _io60p16.port_reserve[_portId] |= (byte)(1 << _pinId); _tickWidth = tickWidth; _io60p16.MakePinOutput(_portId, _pinId); _io60p16.MakePinHigh(_portId, _pinId); SetPWM(); }
/// <summary> /// Constructor /// </summary> /// <param name="io60p16">The IO60 the port is on.</param> /// <param name="pin">Pin to be created</param> /// <param name="initialState">If the pin should be created and set high (true) or low (false)</param> public OutputPort(IO60P16 io60p16, IOPin pin, Boolean initialState) { _io60p16 = io60p16; _portId = _io60p16.GetPortNumber(pin); _pinId = _io60p16.GetPinNumber(pin); if (_io60p16.IsPinReserved(_portId, _pinId)) { throw new Exception("This pin has already been reserved"); } _io60p16.MakePinOutput(_portId, _pinId); _io60p16.port_reserve[_portId] |= (byte)(1 << _pinId); if (initialState) { _io60p16.MakePinHigh(_portId, _pinId); } else { _io60p16.MakePinLow(_portId, _pinId); } }