Arduino Hardware I2C for AVR (plain c) 2017-2018 SMFSW
- cI2C is set to work on AVR targets only -> for other targets, you may use WireWrapper instead (will be using Wire) -> cI2C & WireWrapper libs declare same structures & functions as seen from the outside (switch between libs without changing anyhting but the include)
Feel free to share your thoughts @ xgarm.nosp@m.anbo.nosp@m.ziax@.nosp@m.gmai.nosp@m.l.com about:
- issues encountered
- optimisations
- improvements & new functionalities
** Actual: v1.3 3 May 2018:
- Adding support for unit tests and doxygen documentation generation with Travis CI
- Updated README.md
v1.2 30 Nov 2017:
- No internal address transmission when reading/writing to next internal address (make sure not to r/w last 16 address right just after init, otherwise make a dummy of address 0 just before)
v1.1 29 Nov 2017:
- Frequency calculation fix (thanks to TonyWilk)
- Set Frequency higher than Fast Mode (400KHz) will set bus to Fast Mode (frequency is up to 400KHz on AVR)
- I2C_set_xxx now returns values applied, not bool
v1.0 21 Nov 2017:
- Added const qualifier for function parameters
- Return from comm functions if bytes to R/W set to 0
v0.6 12 Jul 2017:
- compliance with Arduino v1.5+ IDE source located in src subfolder
v0.5 31 Jan 2017:
- refactored I2C_SPEED enum names for coherence with I2C specifications
- High Speed mode added in I2C_SPEED enum
v0.4 23 Jan 2017:
- less inlines (less warnings)
- inlines put into header (compatibility with WireWrapper)
- other common code between cI2C and WireWrapper changes
- README.md updated to tell about WireWrapper library
v0.3 22 Jan 2017:
- used function pointer in function parameters for convenience
- fixed read bug for devices without register address
- refactored rw booleans with enum instead (implied logic change)
- I2C_sndAddr function parameters changed
- added I2C_uninit function to release i2c bus
- refactoring & optimisations
- doxygen pass without warnings/errors now
- examples updated to test more of the library
v0.2 16 Jan 2017: