Test Program for AT241024. Byte R/W, Page R/W

Dependencies:   AT24C1024 mbed-rtos mbed

main.cpp

Committer:
ryood
Date:
2017-01-06
Revision:
4:015c1e2a3ae2
Parent:
3:2265ade869a4

File content as of revision 4:015c1e2a3ae2:

/*
 * AT24C1024 Test
 * 
 * mbed: Revision: 121
 * mbed-rtos: Revision: 117
 *
 * 2016.11.25 Created
 *
 */
 
#include "mbed.h"
#include "rtos.h"
#include "AT24C1024.h"

I2C         i2c(D14, D15);      // SDA, SCL
AT24C1024   at24c1024(i2c);     // Atmel 1Mbit EE-PROM

DigitalOut led1(LED1);

int main()
{
    printf("\r\n*** AT24C1024 Test ***\r\n");
    
    at24c1024.frequency(100000);

    // Byte Read/Write
    // 
    uint8_t dt = 0x55;
    printf("Byte Write: %02x\r\n", dt);
    at24c1024.write(0, dt);     // write addr=0 data=dt
    wait_ms(5);
    dt = at24c1024.read(0);     // read addr=0
    printf("Byte Read: %02x\r\n", dt);

    // Page Read/Write
    // 
    uint8_t eep_buf[258], r_eep_buf[258];
    
    // Zero Clear
    for (int i = 0; i < 256; i++) {
        eep_buf[i] = 0;
        r_eep_buf[i] = 0xff;
    }
    printf("Page Write: Zero Clear\r\n");
    AT24C_STATUS status = at24c1024.write_page(0x1ff00, eep_buf, sizeof(eep_buf));
    wait_ms(5);
    printf("Status: %d\r\n", status);
    printf("Page Read:\r\n");
    status = at24c1024.read_page(0x1ff00, r_eep_buf, sizeof(r_eep_buf));
    printf("Status: %d\r\n", status);
    for (int i = 0; i < sizeof(r_eep_buf); i++) {
        printf("%d ", r_eep_buf[i]);
    }
    printf("\r\n");
    
    // Set 0..255
    for (int i = 0; i < 256; i++) {
        eep_buf[i] = i;
        r_eep_buf[i] = 0x00;
    }
    printf("Page Write: 0..255\r\n");
    status = at24c1024.write_page(0x1ff00, eep_buf, sizeof(eep_buf));
    wait_ms(5);
    printf("Status: %d\r\n", status);
    printf("Page Read:\r\n");
    status = at24c1024.read_page(0x1ff00, r_eep_buf, sizeof(r_eep_buf));
    printf("Status: %d\r\n", status);
    for (int i = 0; i < sizeof(r_eep_buf); i++) {
        printf("%d ", r_eep_buf[i]);
    }
    printf("\r\n");

    while(1) {
        led1 = !led1;
        wait(0.2);
    }
}