Rtos API example

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "test_env.h"
00002 #include "AT30TSE75X.h"
00003 
00004 #define NB_PAGE 16
00005 #define NB_BYTE 16
00006 
00007 uint8_t rx[NB_BYTE], tx[NB_BYTE]="123456789ABCDEF";
00008 
00009 #if defined(TARGET_SAMR21G18A)
00010 AT30TSE75X temp_eeprom(PA16, PA17);
00011 #elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A)
00012 AT30TSE75X temp_eeprom(PA08, PA09);
00013 #elif defined(TARGET_SAMG55J19)
00014 AT30TSE75X temp_eeprom(PB10, PB11);
00015 #else
00016 #error "Target to be defined"
00017 #endif
00018 
00019 int main() {
00020     MBED_HOSTTEST_TIMEOUT(10);
00021     MBED_HOSTTEST_SELECT(default_auto);
00022     MBED_HOSTTEST_DESCRIPTION(AT30TSE75X Interface);
00023     MBED_HOSTTEST_START("MBED_NEW");
00024     float t;
00025     int i;
00026     
00027     /* Write pages in EEPROM */
00028     for (i = 0; i < NB_PAGE; i++) {
00029         tx[NB_PAGE - 1] = i;
00030         if (temp_eeprom.write_eeprom(tx, NB_BYTE, 0, i) != 0) {
00031             printf("Write EEPROM error\r");
00032             return 0;
00033         }
00034         wait_ms(5);
00035     }
00036     printf("Write EEPROM OK\r");
00037 
00038     /* Read each page in EEPROM and compare them */
00039     for (i = 0; i < NB_PAGE; i++) {
00040         memset(rx, 0, NB_BYTE);
00041         if (temp_eeprom.read_eeprom(rx, NB_BYTE, 0, i) != 0) {
00042             printf("Read EEPROM error\r");
00043             return 0;
00044             } else {
00045             if (memcmp(tx, rx, NB_BYTE - 1) && (rx[NB_PAGE - 1] != i)) {
00046                 printf("Comparison error\r");
00047                 return 0;
00048             }
00049         }
00050     }
00051     printf("Read EEPROM & Compare OK\r");
00052 
00053     while (1){
00054       t = temp_eeprom.read_temp();
00055       printf("Temperature: %f\n\r", t);
00056       wait(1);
00057     }
00058 }