public async Task<bool> Init(int address, int cols, int rows, int charSize = LCDConstants.LCD_5x8DOTS, int en = 6, int rw = 5, int rs = 4, int d4 = 0, int d5 = 1, int d6 = 2, int d7 = 3, int? backlightPin = null, BacklightPolarity? polarity = null) { _address = address; if (_lcdHitachiI2Cio == null) { _lcdHitachiI2Cio = new LCD_Hitachi_I2CIO(_i2CDevice); if (await _lcdHitachiI2Cio.Init(_address)) { _lcdHitachiI2Cio.PortMode(LCDConstants.OUTPUT); // Set the entire IO extender to OUTPUT _displayFunction = LCDConstants.LCD_4BITMODE | LCDConstants.LCD_1LINE | LCDConstants.LCD_5x8DOTS; _lcdHitachiI2Cio.Write(0); // Set the entire port to LOW } } await Begin(cols, rows, charSize); _backlightPinMask = 0; _backlightStsMask = LCD_NOBACKLIGHT; _polarity = BacklightPolarity.Positive; _en = (1 << en); _rw = (1 << rw); _rs = (1 << rs); // Initialise pin mapping _dataPins[0] = (1 << d4); _dataPins[1] = (1 << d5); _dataPins[2] = (1 << d6); _dataPins[3] = (1 << d7); if (backlightPin != null && polarity != null) { SetBacklightPin(backlightPin.Value, polarity.Value); } return true; }
public I2CLCD(int address, int en, int rw, int rs, int d4, int d5, int d6, int d7, int backlightPin, BacklightPolarity pol) { _config(address, en, rw, rs, d4, d5, d6, d7); SetBacklightPin(backlightPin, pol); }
public I2CLCD(int address, int en, int rw, int rs, int backlightPin, BacklightPolarity pol) { _config(address, en, rw, rs, D4, D5, D6, D7); SetBacklightPin(backlightPin, pol); }
public I2CLCD(int address, int backlightPin, BacklightPolarity pol) { _config(address, EN, RW, RS, D4, D5, D6, D7); SetBacklightPin(backlightPin, pol); }
public override void SetBacklightPin(int value, BacklightPolarity pol) { _backlightPinMask = (1 << value); _polarity = pol; SetBacklight(Constants.BackLightOff); }
public virtual void SetBacklightPin(int value, BacklightPolarity pol) { }