Erick / Mbed 2 deprecated ICE-F412

Dependencies:   mbed-rtos mbed

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?

UserRevisionLine numberNew 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