Preliminary main mbed library for nexpaq development
Diff: libraries/tests/mbed/i2c_at30tse75x/main.cpp
- Revision:
- 0:6c56fb4bc5f0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libraries/tests/mbed/i2c_at30tse75x/main.cpp Fri Nov 04 20:27:58 2016 +0000 @@ -0,0 +1,58 @@ +#include "test_env.h" +#include "AT30TSE75X.h" + +#define NB_PAGE 16 +#define NB_BYTE 16 + +uint8_t rx[NB_BYTE], tx[NB_BYTE]="123456789ABCDEF"; + +#if defined(TARGET_SAMR21G18A) +AT30TSE75X temp_eeprom(PA16, PA17); +#elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A) +AT30TSE75X temp_eeprom(PA08, PA09); +#elif defined(TARGET_SAMG55J19) +AT30TSE75X temp_eeprom(PB10, PB11); +#else +#error "Target to be defined" +#endif + +int main() { + MBED_HOSTTEST_TIMEOUT(10); + MBED_HOSTTEST_SELECT(default_auto); + MBED_HOSTTEST_DESCRIPTION(AT30TSE75X Interface); + MBED_HOSTTEST_START("MBED_NEW"); + float t; + int i; + + /* Write pages in EEPROM */ + for (i = 0; i < NB_PAGE; i++) { + tx[NB_PAGE - 1] = i; + if (temp_eeprom.write_eeprom(tx, NB_BYTE, 0, i) != 0) { + printf("Write EEPROM error\r"); + return 0; + } + wait_ms(5); + } + printf("Write EEPROM OK\r"); + + /* Read each page in EEPROM and compare them */ + for (i = 0; i < NB_PAGE; i++) { + memset(rx, 0, NB_BYTE); + if (temp_eeprom.read_eeprom(rx, NB_BYTE, 0, i) != 0) { + printf("Read EEPROM error\r"); + return 0; + } else { + if (memcmp(tx, rx, NB_BYTE - 1) && (rx[NB_PAGE - 1] != i)) { + printf("Comparison error\r"); + return 0; + } + } + } + printf("Read EEPROM & Compare OK\r"); + + while (1){ + t = temp_eeprom.read_temp(); + printf("Temperature: %f\n\r", t); + wait(1); + } +}