From 2f8f2fd66688745f3e1e2169e3cda39940a4936d Mon Sep 17 00:00:00 2001 From: Derek Chafin Date: Mon, 12 Mar 2012 10:42:19 -0500 Subject: [PATCH] Added CS pin parameter to the constructor and changed the SD card flush interval to 512 bytes since the buffer for the SD library is 512 bytes --- Logger.cpp | 28 +++++++++++++--------------- Logger.h | 1 + 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/Logger.cpp b/Logger.cpp index 94924d5..d7bd10a 100755 --- a/Logger.cpp +++ b/Logger.cpp @@ -7,11 +7,9 @@ #include "Logger.h" #include -#define CS 4 - - -Logger::Logger(log_outputs output, data_formats format, boolean add_line_break) +Logger::Logger(log_outputs output, data_formats format, boolean add_line_break, uint chip_select) { + _chip_select = chip_select; _output = output; _format = format; _add_line_break = add_line_break; @@ -44,7 +42,7 @@ int Logger::initSD() pinMode(10, OUTPUT); #endif - if (!SD.begin(CS)) { + if (!SD.begin(_chip_select)) { return 1; } @@ -160,19 +158,19 @@ void Logger::logData(byte data) checkAddLineBreak(); - if (_output == SERIAL_OUTPUT) - { - Serial.flush(); - } - - if (_output == SD_OUTPUT) + sync_counter++; + if (sync_counter >= 512) { - sync_counter++; - if (sync_counter >= 2048) + if (_output == SD_OUTPUT) { - _file.flush(); - sync_counter = 0; + _file.flush(); } + + if (_output == SERIAL_OUTPUT) + { + Serial.flush(); + } + sync_counter = 0; } } diff --git a/Logger.h b/Logger.h index 288adde..f793e8f 100755 --- a/Logger.h +++ b/Logger.h @@ -48,5 +48,6 @@ class Logger log_outputs _output; data_formats _format; boolean _add_line_break; + uint _chip_select; }; #endif