SD card
Dependencies: ELEC350-Practicals-FZ429
Fork of Task680solution-mbed-os-FZ429ZI by
main.cpp
- Committer:
- rubbehducky
- Date:
- 2018-01-07
- Revision:
- 5:e7670d83e6b2
- Parent:
- 4:958cfd74ef1c
File content as of revision 5:e7670d83e6b2:
/* Access an SD Card using SPI */
#include "mbed.h"
#include "SDBlockDevice.h"
#include "FATFileSystem.h"
#include "sample_hardware.hpp"
//SD Card Object
SDBlockDevice sd(D11, D12, D13, D10); // mosi, miso, sclk, cs
// DATA TYPE
int main()
{
printf("Initialise\n");
//FileSystemLike(*sd);
// call the SDBlockDevice instance initialisation method. (not needed)
if ( sd.init() != 0) {
printf("Init failed \n");
errorCode(FATAL);
}
//Create a filing system for SD Card
FATFileSystem fs("sd", &sd);
// ************
// Open to READ
// ************
printf("Read a file\n");
FILE* fp = fopen("/sd/test.txt","r");
if (fp == NULL) {
error("Could not open file for read\n");
errorCode(FATAL);
}
//Read back all strings
char s1[64];
while (fscanf(fp, "%s", s1) == 1) {
fgets(s1, sizeof(s1), fp);
}
//To read a whole line, use: fgets(s1, sizeof(s1), fp);
//Close File
fclose(fp);
//Close down
sd.deinit();
printf("All done...\n");
errorCode(OK);
//Flash to indicate goodness
while(true) {
greenLED = 1;
wait(0.5);
greenLED = 0;
wait(0.1);
}
}
/*
printf("sd size: %llu\n", sd.size());
printf("sd read size: %llu\n", sd.get_read_size());
printf("sd program size: %llu\n", sd.get_program_size());
printf("sd erase size: %llu\n", sd.get_erase_size());
// set the frequency
if ( 0 != sd.frequency(5000000)) {
printf("Error setting frequency \n");
}
if ( 0 != sd.erase(0, sd.get_erase_size())) {
printf("Error Erasing block \n");
}
// Write some the data block to the device
if ( 0 == sd.program(block, 0, 512)) {
// read the data block from the device
if ( 0 == sd.read(block, 0, 512)) {
// print the contents of the block
printf("%s", block);
}
}
// call the SDBlockDevice instance de-initialisation method.
sd.deinit();
*/
