mindsensors / EVShield

EVShield Arduino library
20 stars 18 forks source link

softi2c does not build #43

Open pdingemans opened 4 years ago

pdingemans commented 4 years ago

softi2c doesnt build. this is caused by the following: uint8_t SoftI2cMaster::readRegisters(uint8_t startRegister, uint8_t bytes, uint8_t buf){ //delay(20); if (!buf) buf = _so_buffer; bytes = min(bytes,BUFF_LEN); // avoid buffer overflow memset(buf, 0, BUFF_LEN); _error_code = 0; // issue a start condition, send device address and write direction bit if (!start(deviceAddr | I2C_WRITE)) { _error_code = 2; return false; }

the compiler does not allow to return false as an uint8_t*. for c++11 this should be the nullptr.

perezh commented 3 years ago

We are having the same problem (the file SoftI2cMaster.cpp does not compile in any of the examples provided). Any plans to solve this issue?

FloodJ commented 3 years ago

I have a vague memory that the compile error first appeared in Arduino IDE 1.8.10 - I stayed on 1.8.9 until recently, but couldn't remember exactly what library it broke. I've since tried compiling Give it a try - it might get you out of trouble until it can be fixed.

perezh commented 3 years ago

Thanks for your reply. There is a pull request about this (#44) which solves the compilation issue in my Arduino IDE 1.8.13.

pdingemans commented 3 years ago

The problem is caused by the use of a new compiler version used in the arduino IDE, which is more strict. the above mentioned pull request does solve the issue (there are some warnings left which also needs to be fixed, but the shield will work). The support from EVshield people appears none uptil now.