/// <summary> /// Creates a variable of type LiquidCrystal. The display can be controlled using 4 or 8 data lines. If the former, omit the pin numbers for d0 to d3 and leave those lines unconnected. The RW pin can be tied to ground instead of connected to a pin on the Arduino; if so, omit it from this function's parameters. /// </summary> /// <param name="fourBitMode"></param> /// <param name="rs">The number of the CPU pin that is connected to the RS (register select) pin on the LCD.</param> /// <param name="rw">The number of the CPU pin that is connected to the RW (Read/Write) pin on the LCD (optional).</param> /// <param name="enable">the number of the CPU pin that is connected to the enable pin on the LCD.</param> /// <param name="d0"></param> /// <param name="d1"></param> /// <param name="d2"></param> /// <param name="d3"></param> /// <param name="d4"></param> /// <param name="d5"></param> /// <param name="d6"></param> /// <param name="d7"></param> public RaspPiGPIOMemLcdTransferProvider(bool fourBitMode, GPIOMem.GPIOPins rs, GPIOMem.GPIOPins rw, GPIOMem.GPIOPins enable, GPIOMem.GPIOPins d0, GPIOMem.GPIOPins d1, GPIOMem.GPIOPins d2, GPIOMem.GPIOPins d3, GPIOMem.GPIOPins d4, GPIOMem.GPIOPins d5, GPIOMem.GPIOPins d6, GPIOMem.GPIOPins d7) { _fourBitMode = fourBitMode; if (rs == GPIOMem.GPIOPins.GPIO_NONE) { throw new ArgumentException("rs"); } _rsPort = new GPIOMem(rs); // we can save 1 pin by not using RW. Indicate by passing GPIO.GPIOPins.GPIO_NONE instead of pin# if (rw != GPIOMem.GPIOPins.GPIO_NONE) // (RW is optional) { _rwPort = new GPIOMem(rw); } if (enable == GPIOMem.GPIOPins.GPIO_NONE) { throw new ArgumentException("enable"); } _enablePort = new GPIOMem(enable); var dataPins = new[] { d0, d1, d2, d3, d4, d5, d6, d7 }; _dataPorts = new GPIOMem[8]; for (int i = 0; i < 8; i++) { if (dataPins[i] != GPIOMem.GPIOPins.GPIO_NONE) { _dataPorts[i] = new GPIOMem(dataPins[i]); } } }
public RaspPiGPIOMemLcdTransferProvider(GPIOMem.GPIOPins rs, GPIOMem.GPIOPins rw, GPIOMem.GPIOPins enable, GPIOMem.GPIOPins d0, GPIOMem.GPIOPins d1, GPIOMem.GPIOPins d2, GPIOMem.GPIOPins d3, GPIOMem.GPIOPins d4, GPIOMem.GPIOPins d5, GPIOMem.GPIOPins d6, GPIOMem.GPIOPins d7) : this(false, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7) { }
public RaspPiGPIOMemLcdTransferProvider(GPIOMem.GPIOPins rs, GPIOMem.GPIOPins rw, GPIOMem.GPIOPins enable, GPIOMem.GPIOPins d4, GPIOMem.GPIOPins d5, GPIOMem.GPIOPins d6, GPIOMem.GPIOPins d7) : this(true, rs, rw, enable, GPIOMem.GPIOPins.GPIO_NONE, GPIOMem.GPIOPins.GPIO_NONE, GPIOMem.GPIOPins.GPIO_NONE, GPIOMem.GPIOPins.GPIO_NONE, d4, d5, d6, d7) { }