aboutsummaryrefslogtreecommitdiff
path: root/libraries/Wire/src
AgeCommit message (Collapse)Author
2021-02-25Declare TwoWire functions as virtualArkadyGamza
To make alternative implementations of the TwoWire class (e.g. SoftwareWire for software I2C) work properly being passed to libraries that expect TwoWire type.
2021-01-09fix twi_manageTimeoutFlag function descriptionGreyson Christoforo
2020-06-11Wire: apply last suggested comment from @matthijskooijmanMartino Facchin
2020-06-11Wire: improve comments on timeoutMatthijs Kooijman
2020-06-11Wire: add sensible defaults to setWireTimeoutMartino Facchin
2020-06-11Introduce non compulsory Wire timeoutGreyson Christoforo
move timout handling into its own function change timeout from milliseconds to microseconds don't forget operating slave address or the bitrate when we reset because of a timeout Co-Authored-By: Witold Markowski <witold.a.markowski@gmail.com> fix delay datatype uint16_t --> uint32_t Update libraries/Wire/src/utility/twi.c fix mix up using TWBR instea of TWAR! Co-Authored-By: Matthijs Kooijman <matthijs@stdin.nl> Update libraries/Wire/src/utility/twi.c fix 2nd TWBR/TWAR mixup Co-Authored-By: Matthijs Kooijman <matthijs@stdin.nl> twi_stop() should use the same timeout as everywhere else all while loops are now protected by timeouts Revert "twi_stop() should use the same timeout as everywhere else" This reverts commit 68fe5f1dae1bb41183bb37eeda3fb453394a580c. make timeout counter volatile rename timeout function for improved clarity - resetting the twi interface on timeouts is now optional - timeouts in the ISR are no longer hardcoded and now obey the set timeout value - a user-readable flag is now set whenever a timeout occurs - the user can clear this flag whenever they like
2019-08-16Update twi.cCombiesGit
Added __attribute__ ((fallthrough));
2017-11-13UnConfigured I2C Slave ISR Causing Rebootchuck todd
In a MultiMaster I2C environment, The Default value of 0xFE in the TWAR cause the Arduino to respond as an I2C Slave device at address 0x7f. If the Wire.h library was not configured as a I2C Slave, `Wire.begin(slaveID);` the Callbacks for `twi_onSlaveTransmit()` and `twi_onSlaveReceive()` are never initialized. But, they are called during servicing the TWI ISR. This causes a reboot of the Arduino by jumping to an uninitialized function address (0). So, this fix initializes them to the Default Wire.h handler which will respond correctly even during Master Mode operations. A MASTER MODE only Arduino will respond to all Slave Calls that match TWAR, Unless the TWEA bit is disabled outside of Master Transactions. Chuck. It also initialized the TWAR to the General Call ID (0x0) and Disables General Call responses. Chuck.
2016-06-05Fix buffer being overwritten by multiple twi_transmit callskellerkindt
Fixes that more complex methods (like Stream::print(float)) do not work properly. Without this fix, Wire.print(1.01f); results in '1' because Print::printFloat(double, uint8_t) performs multiple print() and therefore twi_transmit calls. Also Wire.println("Heyho"); results only in a newline character.
2016-03-09Fix Wire registerPaolo Paolucci
Move TWBR register from Wire.cpp to twi.c file.
2016-03-04Move AVR Wire library utility folder under sourceSandeep Mistry
2016-03-02add src folder when missingAlice Pintus