Giter Site home page Giter Site logo

adafruit_liquidcrystal's Introduction

Adafruit_LiquidCrystal Build StatusDocumentation

This library has been renamed Adafruit_LiquidCrystal so as not to conflict with LiquidCrystal. For use with liquid crystal displays (LCD) based on the Hitachi HD44780 (or a compatible) chipset, which is found on most text-based LCDs. Also includes support for Adafruit I2C/SPI Character LCD Backpack.

Compatibility

Compatible with any board supported by the Adafruit Bus IO Library.

adafruit_liquidcrystal's People

Contributors

andydoro avatar caternuson avatar driverblock avatar evaherrada avatar hoffmannjan avatar jockm avatar ladyada avatar njh avatar paintyourdragon avatar tdicola avatar tyeth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adafruit_liquidcrystal's Issues

Arduino DUE hangs due to i2c LCD

I noticed a strange behavior when using the Arduino DUE with a 20x4 LCD display that uses I2C to communicate, let me explain:

Parts included:
1 x Arduino DUE R3-E board
1 x SparkFun Logic Level Converter - Bi-Directional
1 x LCD 20x4 with i2c ( https://www.robofun.ro/lcd/lcd_20x4_i2c_negru_verde )

Software:
Arduino IDE 1.6.8
Adafruit LCD from here https://github.com/adafruit/Adafruit_LiquidCrystal

My sketch ( part of ):

//LCD library //#include "Wire.h" //#include "Adafruit_LiquidCrystal.h" //LCD address is #0 //Adafruit_LiquidCrystal lcd(0);

//Other pins
const int buttonRight = 7;
const int buttonLeft = 8;
const int laserPin = 6;
const int ledPin = 10;
const int buttonPin = 9;

// Global vars
int workingMode = 0; // 0 - Normal, 1 - Laser, 2 - Delay, 3 - Serial controlled
int lastButtonPushed = 0;
int currentState = 0; // 0 - Idle, 1 - Processing, 3 - Locked

//Camera pins
const int cam1 = 22;
const int cam2 = 24;
const int cam3 = 26;
const int cam4 = 28;
const int cam5 = 30;
const int cam6 = 32;
const int cam7 = 34;
const int cam8 = 36;
const int cam9 = 38;
const int cam10 = 40;
const int cam11 = 42;
const int cam12 = 44;
const int cam13 = 46;
const int cam14 = 48;
const int cam15 = 50;
const int cam16 = 51;
const int cam17 = 49;
const int cam18 = 47;
const int cam19 = 45;
const int cam20 = 43;
const int cam21 = 41;
const int cam22 = 39;
const int cam23 = 37;
const int cam24 = 35;

const int cameras[] = {cam1, cam2, cam3, cam4, cam5, cam6, cam7, cam8, cam9,
cam10, cam11, cam12, cam13, cam14, cam15, cam16, cam17,
cam18, cam19, cam20, cam21, cam22, cam23, cam24 };

int lastButtonRightState = LOW;
int lastButtonLeftState = LOW;
long lastRightDebounceTime = 0;
long lastLeftDebounceTime = 0;
long debounceDelay = 500;
int buttonState;
unsigned long previousMillis = 0;
const long interval = 500;
int ledState = LOW;
bool pcAction = false;

// Buffer to store incoming commands from serial port
String serialInData;

void setup() {
Serial.begin(57600); // Init serial 9600b
// lcd.begin(20, 4); // Init LCD, 20x4 lines i2c
// lcd.setBacklight(HIGH);
// lcd.setCursor(0,0);
// lcd.print("lcd test string");

//Pin definitions
pinMode(laserPin, OUTPUT);
digitalWrite(laserPin, LOW);
pinMode(ledPin, OUTPUT);
pinMode(A0, INPUT);          // Photoresistor pin
pinMode(buttonPin, INPUT);   // Take photo pin
pinMode(buttonRight, INPUT); // LCD MENU
pinMode(buttonLeft, INPUT);  // LCD MENU
for (int count=0;count<24;count++) {
    pinMode(cameras[count], OUTPUT);
    digitalWrite(cameras[count], LOW);
}   
Serial.print("Init finished!\n");

}

As you can see now all the code related to LCD is commented out.

When using the LCD the Arduino sometimes boots OK, very fast and is working as expected but sometimes if I disconnect the serial port and reconnect it, it never resets. Instead it completely freeze and I have to power cycle the device in order to get it working again ( not even the onboard reset button works ). Let's say this thing happen 5 times out of 10.

Another situation is when I power the device, sometimes is working as expected, sometimes is never boot up, or it's booting but freezes after.

Also noticed this behavior when disconnecting from serial port and reconnecting using the Serial Monitor, sometimes is working as expected ( CPU is reset, I see the "Init finished" printed to serial ) and sometimes completely freeze the device, had to power cycle.

All those problems happen only during start-up, if the device started OK and if I don't reset the serial port everything works as expected.

Also noticed that when using the LCD libraries, the board boots ( if it succeed ) instantly ( max 1 second ) and if not using the libs it takes about 5 to 7 seconds for the board to respond to serial.
Is this normal ? How fast should the DUE respond to serial after power cycle ?

Thanks !

Could not get the library to work with the ATtiny85

Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:

  • Do not use GitHub issues for troubleshooting projects and issues. Instead use
    the forums at http://forums.adafruit.com to ask questions and troubleshoot why
    something isn't working as expected. In many cases the problem is a common issue
    that you will more quickly receive help from the forum community. GitHub issues
    are meant for known defects in the code. If you don't know if there is a defect
    in the code then start with troubleshooting on the forum first.

  • If following a tutorial or guide be sure you didn't miss a step. Carefully
    check all of the steps and commands to run have been followed. Consult the
    forum if you're unsure or have questions about steps in a guide/tutorial.

  • For Arduino projects check these very common issues to ensure they don't apply:

    • For uploading sketches or communicating with the board make sure you're using
      a USB data cable and not a USB charge-only cable. It is sometimes
      very hard to tell the difference between a data and charge cable! Try using the
      cable with other devices or swapping to another cable to confirm it is not
      the problem.

    • Be sure you are supplying adequate power to the board. Check the specs of
      your board and plug in an external power supply. In many cases just
      plugging a board into your computer is not enough to power it and other
      peripherals.

    • Double check all soldering joints and connections. Flakey connections
      cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.

    • Ensure you are using an official Arduino or Adafruit board. We can't
      guarantee a clone board will have the same functionality and work as expected
      with this code and don't support them.

If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:

  • Arduino board: ATtiny85

  • Arduino IDE version (found in Arduino -> About Arduino menu): Version: 2.3.0
    Date: 2024-02-07T14:04:32.754Z
    CLI Version: 0.35.2

Copyright © 2024 Arduino SA

  • List the steps to reproduce the problem below (if possible attach a sketch or
    copy the sketch code in too):
    #include <Adafruit_LiquidCrystal.h>

Adafruit_LiquidCrystal lcd(0, 1, 2, 3, 4, 5);

void setup()
{
lcd.begin(16, 2);
lcd.print("Line1");
}
void loop()
{
lcd.setCursor(0, 1);
lcd.print("Line2");

}

Does not compile, these are the errors:

In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In member function 'void SPISettings::init_AlwaysInline(uint32_t, uint8_t, uint8_t)':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:146:16: error: 'SPE' was not declared in this scope
spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) |
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:146:16: note: suggested alternative: 'SPH'
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:146:27: error: 'MSTR' was not declared in this scope
spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) |
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:146:27: note: suggested alternative: 'PSTR'
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:146:65: error: 'DORD' was not declared in this scope
spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) |
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:146:65: note: suggested alternative: 'DDRB'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::beginTransaction(SPISettings)':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:203:5: error: 'SPCR' was not declared in this scope
SPCR = settings.spcr;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:203:5: note: suggested alternative: 'EECR'
SPCR = settings.spcr;
^~~~
EECR
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:204:5: error: 'SPSR' was not declared in this scope
SPSR = settings.spsr;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:204:5: note: suggested alternative: 'ACSR'
SPSR = settings.spsr;
^~~~
ACSR
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In static member function 'static uint8_t SPIClass::transfer(uint8_t)':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:209:5: error: 'SPDR' was not declared in this scope
SPDR = data;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:209:5: note: suggested alternative: 'EEDR'
SPDR = data;
^~~~
EEDR
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:217:14: error: 'SPSR' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ; // wait
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:217:14: note: suggested alternative: 'ACSR'
while (!(SPSR & _BV(SPIF))) ; // wait
^~~~
ACSR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:217:25: error: 'SPIF' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ; // wait
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:217:25: note: suggested alternative: 'WDIF'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In static member function 'static uint16_t SPIClass::transfer16(uint16_t)':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:223:11: error: 'SPCR' was not declared in this scope
if (!(SPCR & _BV(DORD))) {
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:223:11: note: suggested alternative: 'EECR'
if (!(SPCR & _BV(DORD))) {
^~~~
EECR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:223:22: error: 'DORD' was not declared in this scope
if (!(SPCR & _BV(DORD))) {
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:223:22: note: suggested alternative: 'DDRB'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:224:7: error: 'SPDR' was not declared in this scope
SPDR = in.msb;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:224:7: note: suggested alternative: 'EEDR'
SPDR = in.msb;
^~~~
EEDR
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:226:16: error: 'SPSR' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:226:16: note: suggested alternative: 'ACSR'
while (!(SPSR & _BV(SPIF))) ;
^~~~
ACSR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:226:27: error: 'SPIF' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:226:27: note: suggested alternative: 'WDIF'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:230:16: error: 'SPSR' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:230:16: note: suggested alternative: 'ACSR'
while (!(SPSR & _BV(SPIF))) ;
^~~~
ACSR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:230:27: error: 'SPIF' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:230:27: note: suggested alternative: 'WDIF'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:233:7: error: 'SPDR' was not declared in this scope
SPDR = in.lsb;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:233:7: note: suggested alternative: 'EEDR'
SPDR = in.lsb;
^~~~
EEDR
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:235:16: error: 'SPSR' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:235:16: note: suggested alternative: 'ACSR'
while (!(SPSR & _BV(SPIF))) ;
^~~~
ACSR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:235:27: error: 'SPIF' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:235:27: note: suggested alternative: 'WDIF'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:239:16: error: 'SPSR' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:239:16: note: suggested alternative: 'ACSR'
while (!(SPSR & _BV(SPIF))) ;
^~~~
ACSR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:239:27: error: 'SPIF' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:239:27: note: suggested alternative: 'WDIF'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::transfer(void*, size_t)':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:247:5: error: 'SPDR' was not declared in this scope
SPDR = *p;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:247:5: note: suggested alternative: 'EEDR'
SPDR = *p;
^~~~
EEDR
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:250:16: error: 'SPSR' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:250:16: note: suggested alternative: 'ACSR'
while (!(SPSR & _BV(SPIF))) ;
^~~~
ACSR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:250:27: error: 'SPIF' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:250:27: note: suggested alternative: 'WDIF'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:255:14: error: 'SPSR' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:255:14: note: suggested alternative: 'ACSR'
while (!(SPSR & _BV(SPIF))) ;
^~~~
ACSR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:255:25: error: 'SPIF' was not declared in this scope
while (!(SPSR & _BV(SPIF))) ;
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:255:25: note: suggested alternative: 'WDIF'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setBitOrder(uint8_t)':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:292:31: error: 'SPCR' was not declared in this scope
if (bitOrder == LSBFIRST) SPCR |= _BV(DORD);
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:292:31: note: suggested alternative: 'EECR'
if (bitOrder == LSBFIRST) SPCR |= _BV(DORD);
^~~~
EECR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:292:43: error: 'DORD' was not declared in this scope
if (bitOrder == LSBFIRST) SPCR |= _BV(DORD);
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:292:43: note: suggested alternative: 'DDRB'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:293:10: error: 'SPCR' was not declared in this scope
else SPCR &= ~(_BV(DORD));
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:293:10: note: suggested alternative: 'EECR'
else SPCR &= ~(_BV(DORD));
^~~~
EECR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:293:24: error: 'DORD' was not declared in this scope
else SPCR &= ~(_BV(DORD));
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:293:24: note: suggested alternative: 'DDRB'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setDataMode(uint8_t)':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:298:5: error: 'SPCR' was not declared in this scope
SPCR = (SPCR & ~SPI_MODE_MASK) | dataMode;
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:298:5: note: suggested alternative: 'EECR'
SPCR = (SPCR & ~SPI_MODE_MASK) | dataMode;
^~~~
EECR
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setClockDivider(uint8_t)':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:303:5: error: 'SPCR' was not declared in this scope
SPCR = (SPCR & ~SPI_CLOCK_MASK) | (clockDiv & SPI_CLOCK_MASK);
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:303:5: note: suggested alternative: 'EECR'
SPCR = (SPCR & ~SPI_CLOCK_MASK) | (clockDiv & SPI_CLOCK_MASK);
^~~~
EECR
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:304:5: error: 'SPSR' was not declared in this scope
SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((clockDiv >> 2) & SPI_2XCLOCK_MASK);
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:304:5: note: suggested alternative: 'ACSR'
SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((clockDiv >> 2) & SPI_2XCLOCK_MASK);
^~~~
ACSR
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::attachInterrupt()':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:309:42: error: 'SPCR' was not declared in this scope
inline static void attachInterrupt() { SPCR |= _BV(SPIE); }
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:309:42: note: suggested alternative: 'EECR'
inline static void attachInterrupt() { SPCR |= _BV(SPIE); }
^~~~
EECR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:309:54: error: 'SPIE' was not declared in this scope
inline static void attachInterrupt() { SPCR |= _BV(SPIE); }
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:309:54: note: suggested alternative: 'ACIE'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_SPIDevice.h:9:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:10,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::detachInterrupt()':
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:310:42: error: 'SPCR' was not declared in this scope
inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); }
^~~~
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:310:42: note: suggested alternative: 'EECR'
inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); }
^~~~
EECR
In file included from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,
from c:\users\rick.sciorra.nri\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,
from C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:28,
from C:\Users\rick.sciorra.NRI\AppData\Local\Temp\arduino\sketches\920D866D06B915D0A3978FA1E9429C24\sketch\sketch_feb21a.ino.cpp:1:
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:310:55: error: 'SPIE' was not declared in this scope
inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); }
^
C:\Users\rick.sciorra.NRI\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI\src/SPI.h:310:55: note: suggested alternative: 'ACIE'
In file included from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23XXX.h:8:0,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src/Adafruit_MCP23X08.h:8,
from c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_LiquidCrystal/Adafruit_LiquidCrystal.h:9,
from C:\Users\rick.sciorra.NRI\Documents\Arduino\sketch_feb21a\sketch_feb21a.ino:1:
c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h: At global scope:
c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:74:27: error: 'Serial' was not declared in this scope
void print(Stream *s = &Serial);
^~~~~~
c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:74:27: note: suggested alternative: 'Stream'
void print(Stream *s = &Serial);
^~~~~~
Stream
c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:75:29: error: 'Serial' was not declared in this scope
void println(Stream *s = &Serial);
^~~~~~
c:\Users\rick.sciorra.NRI\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_BusIO_Register.h:75:29: note: suggested alternative: 'Stream'
void println(Stream *s = &Serial);
^~~~~~
Stream

exit status 1

Compilation error: exit status 1

🧹

@caternuson this board is getting a QTification - so maybe a good time to neaten this up: with lib dependancies we no longer need to 'embed' the MCP driver, also mebe add ability to pass in &Wire and check PRs/issues for any fixes?

Support for both jumpered address and full i2c address

Currently, in begin() the code does this:

if (addr > 7) {
addr = 7;
}

This will more than likely end up creating a bad i2c address for users that fill in the full i2c address. Why not do this instead:

addr &= 7;

That way it works whether they fill in the full i2c address or just the jumpered address.

setBacklight() not compatible with LCD API 1.0

The setBacklight() function in the adafruit_LiquidCrystal library is not compatible with the way other libraries have implemented this function.
Other libraries that have implemented this function use the argument to this function as a dimvalue rather than an absolute status as specified in the LCD API 1.0
http://playground.arduino.cc/Code/LCDAPI

This allows dimming on h/w that supports it.
For h/w that does not support dimming, any non zero value will turn the backlight on.

Unfortunately, the way the code is implemented in the Adafruit_LiquidCrystal library only a value of HIGH will turn on the backlight and all other values will turn off the backlight.
This breaks sketches that have been written to be portable across multiple libraries and transparently offer dimming on h/w that supports it.

The Adafruit_LiquidCrystal library can easily be updated to correct/fix this by simply checking for a non zero value and use that to turn on the backlight rather than accepting any 8 bit value but only turning on the backlight for a value of HIGH.

This could be corrected in a number of ways but the simplest is probably to just make a tweak to setBacklight()

setBacklight() can be corrected to be:

// Allows to set the backlight, if the LCD backpack is used
void Adafruit_LiquidCrystal::setBacklight(uint8_t val) {
  if(val) // no dimming so any non zero value turns on backlight
        val = HIGH;
  // check if i2c or SPI
  if ((_i2cAddr != 255) || (_SPIclock != 255)) {
    _digitalWrite(7, val); // backlight is on pin 7
  }
}

This will update should not affect any existing Adafruit_LiquidCrystal sketches, and will update the library code to be compatible with the LCD API 1.0 so the library will no longer break existing portable sketches written for multiple libraries that now are also supporting the Adafruit_LiquidCrystal library.

On a related note, I would also recommend considering changing the code in
Adafruit_LiquidCrystal::_digitalWrite() and Adafruit_MCP23008::digitatlWrite()
as those functions currently explicitly check for HIGH and if not HIGH then set the pin output to low.
Given that the functions do not use a boolean argument value , and can be handed 8 bit values other than LOW or HIGH, I think it would be wiser to check for LOW, and set the pin high if the value is not LOW.
This would seem to be a better way of handling the argument value given it is not a boolean.

Missing Licensing & copyright information

Library lacks a clear license and copyright notices.
Please add a licensing file that clearly indicates the licensing of the library.

The main header and .cpp files appear to be derivatives of the IDE LiquidCrystal library
The IDE LiquidCrystal library is LGPL 2.1+ so this library must also adopt the LGPL 2.1+ license or it could be converted to GPL 3.0 if that is preferred as LGPL 2.1+ allows that.

The MCP23008 files in the utility directory can be licensed as BSD; however, if the library uses LGPL 2.1+ files, then the overall license for the library cannot be changed to BSD, MIT, or any other less restrictive license as the library uses LGPL 2.1+ files and LGPL does not allow conversion to a less restrictive license.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.