arduino stuffs
Diffstat (limited to 'libraries/SD/examples/NonBlockingWrite/NonBlockingWrite.ino')
| -rw-r--r-- | libraries/SD/examples/NonBlockingWrite/NonBlockingWrite.ino | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/libraries/SD/examples/NonBlockingWrite/NonBlockingWrite.ino b/libraries/SD/examples/NonBlockingWrite/NonBlockingWrite.ino deleted file mode 100644 index 29d8ec6..0000000 --- a/libraries/SD/examples/NonBlockingWrite/NonBlockingWrite.ino +++ /dev/null @@ -1,91 +0,0 @@ -/* - Non-blocking Write - - This example demonstrates how to perform non-blocking writes - to a file on a SD card. The file will contain the current millis() - value every 10ms. If the SD card is busy, the data will be buffered - in order to not block the sketch. - - NOTE: myFile.availableForWrite() will automatically sync the - file contents as needed. You may lose some unsynced data - still if myFile.sync() or myFile.close() is not called. - - The circuit: - - Arduino MKR Zero board - - micro SD card attached - - This example code is in the public domain. -*/ - -#include <SD.h> - -// file name to use for writing -const char filename[] = "demo.txt"; - -// File object to represent file -File txtFile; - -// string to buffer output -String buffer; - -unsigned long lastMillis = 0; - -void setup() { - Serial.begin(9600); - while (!Serial); - - // reserve 1kB for String used as a buffer - buffer.reserve(1024); - - // set LED pin to output, used to blink when writing - pinMode(LED_BUILTIN, OUTPUT); - - // init the SD card - if (!SD.begin()) { - Serial.println("Card failed, or not present"); - // don't do anything more: - while (1); - } - - // If you want to start from an empty file, - // uncomment the next line: - // SD.remove(filename); - - // try to open the file for writing - txtFile = SD.open(filename, FILE_WRITE); - if (!txtFile) { - Serial.print("error opening "); - Serial.println(filename); - while (1); - } - - // add some new lines to start - txtFile.println(); - txtFile.println("Hello World!"); -} - -void loop() { - // check if it's been over 10 ms since the last line added - unsigned long now = millis(); - if ((now - lastMillis) >= 10) { - // add a new line to the buffer - buffer += "Hello "; - buffer += now; - buffer += "\r\n"; - - lastMillis = now; - } - - // check if the SD card is available to write data without blocking - // and if the buffered data is enough for the full chunk size - unsigned int chunkSize = txtFile.availableForWrite(); - if (chunkSize && buffer.length() >= chunkSize) { - // write to file and blink LED - digitalWrite(LED_BUILTIN, HIGH); - txtFile.write(buffer.c_str(), chunkSize); - digitalWrite(LED_BUILTIN, LOW); - - // remove written data from buffer - buffer.remove(0, chunkSize); - } -} |