library for IZU2022

Dependencies:   mbed mpu9250_i2c IM920 BMP180 GPS millis

Dependents:   IZU2022

main.cpp

Committer:
ryood
Date:
2016-11-22
Revision:
3:3ce322ac8193
Parent:
2:3f286265fade
Child:
4:756dc42397cb

File content as of revision 3:3ce322ac8193:

/*
 * SDFileSystem Binary R/W Test
 * 
 * Library
 * SDFileSystem: https://developer.mbed.org/users/neilt6/code/SDFileSystem/ Revision:26
 * mbed: Revision: 124
 * mbed-rtos: Revision: 117
 *
 * 2016.11.22 created
 *
 */
 
#include "mbed.h"
#include "rtos.h"
#include "SDFileSystem.h"

SPI Spi(PC_12, PC_11, PC_10); // SPI3: mosi, miso, sclk

typedef struct {
    uint8_t x;
    uint8_t y;
    uint8_t z;
} DataT;

void writeSD(DataT* data)
{
    SDFileSystem sd(PC_12, PC_11, PC_10, PA_14, "sd"); // SPI3: mosi, miso, sclk, cs    
    
    //Mount the filesystem
    sd.mount();
    
    //Perform a write test
    printf("\nWriting binary data to SD card...");
    FileHandle* file = sd.open("Test File.bin", O_WRONLY | O_CREAT | O_TRUNC);
    if (file != NULL)
    {
        if (file->write(data, sizeof(*data)) != sizeof(*data))
        {
            error("write error!\n");
        }
        if (file->close())
        {
            printf("failed to close file!\n");
        }
        else
        {
            printf("done!\n");
        }
    } 
    else
    {
        printf("failed to create file!\n");
    }
    
    //Unmount the filesystem
    sd.unmount();
}

void readSD(DataT* data)
{
    SDFileSystem sd(PC_12, PC_11, PC_10, PA_14, "sd"); // SPI3: mosi, miso, sclk, cs    
    
    //Mount the filesystem
    sd.mount();
    
    //Perform a read test
    printf("\nReading binary data from SD card...");
    FileHandle* file = sd.open("Test File.bin", O_RDONLY);
    if (file != NULL)
    {
        if (file->read(data, sizeof(*data)) != sizeof(*data))
        {
            error("read error!\n");
        }
        if (file->close())
        {
            printf("failed to close file!\n");
        }
        else
        {
            printf("done!\n");
        }
    } 
    else
    {
        printf("failed to open file!\n");
    }
    
    //Unmount the filesystem
    sd.unmount();
}
        
int main()
{
    DataT data, rdata;    
    
    data.x = 0xff;
    data.y = 0x55;
    data.z = 0xaa;
    
    writeSD(&data);
    readSD(&rdata);
    
    printf("data: x:%02x y:%02x z:%02x\n", rdata.x, rdata.y, rdata.z);
}