Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ICE-Application/src/Drivers/i2c_eeprom.h@1:b2e90cda7a5a, 2017-01-24 (annotated)
- Committer:
- jmarkel44
- Date:
- Tue Jan 24 19:06:45 2017 +0000
- Revision:
- 1:b2e90cda7a5a
- Parent:
- 0:61364762ee0e
Port from IAR F412 project
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jmarkel44 | 0:61364762ee0e | 1 | /*H**************************************************************************** |
jmarkel44 | 0:61364762ee0e | 2 | * FILENAME : i2c_eeprom.h * |
jmarkel44 | 0:61364762ee0e | 3 | * * |
jmarkel44 | 0:61364762ee0e | 4 | * DESCRIPTION : * |
jmarkel44 | 0:61364762ee0e | 5 | * Simple library for external I2C EEEPROM. * |
jmarkel44 | 0:61364762ee0e | 6 | * * |
jmarkel44 | 0:61364762ee0e | 7 | * AUTHOR : Olli Vanhoja START DATE : 2011-02-17 * |
jmarkel44 | 0:61364762ee0e | 8 | ****************************************************************************** |
jmarkel44 | 0:61364762ee0e | 9 | * |
jmarkel44 | 0:61364762ee0e | 10 | * CHANGES : |
jmarkel44 | 0:61364762ee0e | 11 | * |
jmarkel44 | 0:61364762ee0e | 12 | * VERSION DATE WHO DETAIL |
jmarkel44 | 0:61364762ee0e | 13 | * 0.1 2011-02-21 Olli Vanhoja Initial release version |
jmarkel44 | 0:61364762ee0e | 14 | * 0.2 2011-02-21 Olli Vanhoja *Added possibility change I2C speed |
jmarkel44 | 0:61364762ee0e | 15 | * *Added external reset pin and autoreset |
jmarkel44 | 0:61364762ee0e | 16 | * for read function. Thanks to Jon Ward. |
jmarkel44 | 0:61364762ee0e | 17 | * *Documentational comments added. |
jmarkel44 | 0:61364762ee0e | 18 | * 0.3 2011-02-21 Olli Vanhoja *Auto-reset for all error conditions |
jmarkel44 | 0:61364762ee0e | 19 | * |
jmarkel44 | 0:61364762ee0e | 20 | *H*/ |
jmarkel44 | 0:61364762ee0e | 21 | |
jmarkel44 | 0:61364762ee0e | 22 | #ifndef I2C_EEPROM_H |
jmarkel44 | 0:61364762ee0e | 23 | #define I2C_EEPROM_H |
jmarkel44 | 0:61364762ee0e | 24 | |
jmarkel44 | 0:61364762ee0e | 25 | /** I2C EEPROM access class |
jmarkel44 | 0:61364762ee0e | 26 | * |
jmarkel44 | 0:61364762ee0e | 27 | * This class is used for communication with I2C EEPROM chip. |
jmarkel44 | 0:61364762ee0e | 28 | */ |
jmarkel44 | 0:61364762ee0e | 29 | class i2c_eeprom { |
jmarkel44 | 0:61364762ee0e | 30 | private: |
jmarkel44 | 0:61364762ee0e | 31 | int i_i2c_address; // I2C harware address |
jmarkel44 | 0:61364762ee0e | 32 | void autoreset(); |
jmarkel44 | 0:61364762ee0e | 33 | public: |
jmarkel44 | 0:61364762ee0e | 34 | /** Initialize communication |
jmarkel44 | 0:61364762ee0e | 35 | * |
jmarkel44 | 0:61364762ee0e | 36 | * @param hwAddr Harware address of the I2C EEPROM chip. |
jmarkel44 | 0:61364762ee0e | 37 | * @param speed I2C bus speed. |
jmarkel44 | 0:61364762ee0e | 38 | */ |
jmarkel44 | 0:61364762ee0e | 39 | i2c_eeprom(int hwAddr, int speed); |
jmarkel44 | 0:61364762ee0e | 40 | |
jmarkel44 | 0:61364762ee0e | 41 | /** Write to I2C EEPROM |
jmarkel44 | 0:61364762ee0e | 42 | * |
jmarkel44 | 0:61364762ee0e | 43 | * Write any length of bytes to external EEPROM. |
jmarkel44 | 0:61364762ee0e | 44 | * |
jmarkel44 | 0:61364762ee0e | 45 | * @param *data Array of bytes. |
jmarkel44 | 0:61364762ee0e | 46 | * @param iAddr Memory address. |
jmarkel44 | 0:61364762ee0e | 47 | * @param n Write n bytes. |
jmarkel44 | 0:61364762ee0e | 48 | */ |
jmarkel44 | 0:61364762ee0e | 49 | void write(char *data, uint16_t iAddr, unsigned int n); |
jmarkel44 | 0:61364762ee0e | 50 | |
jmarkel44 | 0:61364762ee0e | 51 | /** Read from I2C EEPROM |
jmarkel44 | 0:61364762ee0e | 52 | * |
jmarkel44 | 0:61364762ee0e | 53 | * Read any length of bytes from external EEPROM. |
jmarkel44 | 0:61364762ee0e | 54 | * |
jmarkel44 | 0:61364762ee0e | 55 | * @param iAddr Memory address. |
jmarkel44 | 0:61364762ee0e | 56 | * @param n Read n bytes. |
jmarkel44 | 0:61364762ee0e | 57 | * @param *out Returns array of bytes. |
jmarkel44 | 0:61364762ee0e | 58 | */ |
jmarkel44 | 0:61364762ee0e | 59 | void read(uint16_t iAddr, uint16_t n, char *out); |
jmarkel44 | 0:61364762ee0e | 60 | }; |
jmarkel44 | 0:61364762ee0e | 61 | |
jmarkel44 | 0:61364762ee0e | 62 | #endif |