Swimate V2 without RTOS code

Dependencies:   Adafruit_GFX_128x64 DS3231 PinDetect SDFileSystem USBDevice mbed RealtimeMath MODSERIAL

Committer:
ellingjp
Date:
Tue May 20 00:43:55 2014 +0000
Revision:
8:8430a5c0914c
Child:
9:a711b5b34d73
Working logging and split time detection

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ellingjp 8:8430a5c0914c 1 #include "mbed.h"
ellingjp 8:8430a5c0914c 2 #include "log_data.h"
ellingjp 8:8430a5c0914c 3 #include "SDFileSystem.h"
ellingjp 8:8430a5c0914c 4 #include "helper_3dmath.h"
ellingjp 8:8430a5c0914c 5 #include "debug.h"
ellingjp 8:8430a5c0914c 6
ellingjp 8:8430a5c0914c 7 // SD Card
ellingjp 8:8430a5c0914c 8 SDFileSystem sd(P0_21, P0_22, P1_15, P1_19, "sd"); // MOSI, MISO, SCLK, SSEL SPI1
ellingjp 8:8430a5c0914c 9
ellingjp 8:8430a5c0914c 10 // Logging vars
ellingjp 8:8430a5c0914c 11 FILE *logFile;
ellingjp 8:8430a5c0914c 12
ellingjp 8:8430a5c0914c 13 /* Returns true if logging was successfully initialized, false otherwise */
ellingjp 8:8430a5c0914c 14 bool log_init() {
ellingjp 8:8430a5c0914c 15 logFile = fopen(LOG_FILE, "a");
ellingjp 8:8430a5c0914c 16 if (logFile == NULL) {
ellingjp 8:8430a5c0914c 17 PC_PRINTLNF("SD card initialization error: Failed to open %s", LOG_FILE);
ellingjp 8:8430a5c0914c 18 DIE(SD_ERROR_RATE);
ellingjp 8:8430a5c0914c 19 return false;
ellingjp 8:8430a5c0914c 20 }
ellingjp 8:8430a5c0914c 21 fprintf(logFile, "---- BEGIN NEW DATASET ----\n");
ellingjp 8:8430a5c0914c 22 return true;
ellingjp 8:8430a5c0914c 23 }
ellingjp 8:8430a5c0914c 24
ellingjp 8:8430a5c0914c 25 /* Returns true if data was successfully logged, false otherwise
ellingjp 8:8430a5c0914c 26 Used for logging acceleration data */
ellingjp 8:8430a5c0914c 27 bool log_data(VectorInt16 *data) {
ellingjp 8:8430a5c0914c 28 if (logFile != NULL) {
ellingjp 8:8430a5c0914c 29 fprintf(logFile, "%d, %d, %d\n", data->x, data->y, data->z);
ellingjp 8:8430a5c0914c 30 return true;
ellingjp 8:8430a5c0914c 31 }
ellingjp 8:8430a5c0914c 32
ellingjp 8:8430a5c0914c 33 return false;
ellingjp 8:8430a5c0914c 34 }
ellingjp 8:8430a5c0914c 35
ellingjp 8:8430a5c0914c 36 /* Returns true if data was successfully logged, false otherwise
ellingjp 8:8430a5c0914c 37 Used for logging split times */
ellingjp 8:8430a5c0914c 38 bool log_data(uint16_t data) {
ellingjp 8:8430a5c0914c 39
ellingjp 8:8430a5c0914c 40 }
ellingjp 8:8430a5c0914c 41
ellingjp 8:8430a5c0914c 42 /* Returns true if logging was successfully closed, false otherwise */
ellingjp 8:8430a5c0914c 43 bool log_close() {
ellingjp 8:8430a5c0914c 44 if (logFile != NULL)
ellingjp 8:8430a5c0914c 45 return fclose(logFile) == 0;
ellingjp 8:8430a5c0914c 46
ellingjp 8:8430a5c0914c 47 return false;
ellingjp 8:8430a5c0914c 48 }