Function |
|
Read a data block of a specified length from a specified location in serial EEPROM to bufferINFO |
Purpose |
|
Read from serial EEPROM |
Syntax |
|
bit eeeReadData(uns16 address) |
Parameters |
|
address: initial address in serial EEPROM (0 to 0x7FFF). |
Input values |
|
• memoryLimit specifies the number of bytes (1 to 64) to be read. It must be set before every eeeReadData call. If memoryLimit == 0, 64 B is read. • To respect accessible range, the following rule must be observed: address + memoryLimit < 0x8000. See Examples 2 and 3. |
Return value |
|
• 1: Read successful • 0: Read unsuccessful (e.g. due to damaged, not supplied or not populated memory device). Additionally, the _eeeError flag is set. Subsequent clearing of this flag is up to the user. |
Output values |
|
bufferINFO[0 to 63] |
Preconditions |
|
The power supply of serial EEPROM must not be disconnected. See macros eEEPROM_TempSensorOn and eEEPROM_TempSensorOff. |
Remarks |
|
• Memory range 0 to 0x7FFF is accessible. • memoryLimit is automatically cleared after every eeeReadData call. |
Side effects |
|
– |
See also |
|
|
Example 1 |
|
// Copy 64 B from serial EEPROM from address 0x3C to bufferINFO // When memoryLimit is kept cleared from previous operations eeeReadData(0x3C); // bufferINFO[0] = serial EEPROM[0x3C] // ... // bufferINFO[63] = serial EEPROM[0x7B] |
Example 2 |
|
// Copy 40 B from serial EEPROM from address 0x3C to bufferINFO memoryLimit = 40; // To read 40 B eeeReadData(0x3C); // bufferINFO[0] = serial EEPROM[0x3C] // ... // bufferINFO[39] = serial EEPROM[0x63] // memoryLimit is automatically cleared here |
Example 3 |
|
// Attempt to read 40 B from address 0x7EEE memoryLimit = 40; eeeReadData(0x7FEE); // Illegal usage, out of 0x7FFF boundary |
Example 4 |
|
if (eeeReadData(0x0A)) X = bufferINFO[0] else { ... // Error handling } |