Esempio n. 1
0
            /// <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);
            }
Esempio n. 2
0
            /// <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();
            }
Esempio n. 3
0
            /// <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);
                }
            }