daily_automated
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
// This stress test will create and write files until the SD is full.
|
||||
#include <SPI.h>
|
||||
#include <SdFat.h>
|
||||
|
||||
// SD chip select pin.
|
||||
const uint8_t SD_CS_PIN = SS;
|
||||
|
||||
// Set write buffer size.
|
||||
#ifdef __arm__
|
||||
#ifndef CORE_TEENSY
|
||||
// Due
|
||||
const size_t BUF_SIZE = 32768;
|
||||
#else // CORE_TEENSY
|
||||
// Teensy 3.0
|
||||
const size_t BUF_SIZE = 8192;
|
||||
#endif // CORE_TEENSY
|
||||
#elif defined(RAMEND) && RAMEND > 5000
|
||||
// AVR with more than 4 KB RAM
|
||||
const size_t BUF_SIZE = 4096;
|
||||
#else // __arm__
|
||||
// other
|
||||
const size_t BUF_SIZE = 512;
|
||||
#endif // __arm__
|
||||
|
||||
const size_t FILE_SIZE_KB = 10240;
|
||||
const uint16_t BUFS_PER_FILE = (1024L*FILE_SIZE_KB/BUF_SIZE);
|
||||
|
||||
SdFat sd;
|
||||
|
||||
SdFile file;
|
||||
|
||||
uint8_t buf[BUF_SIZE];
|
||||
char name[13];
|
||||
//------------------------------------------------------------------------------
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
Serial.print("BUF_SIZE ");
|
||||
Serial.println(BUF_SIZE);
|
||||
Serial.println("Type any character to start");
|
||||
while (Serial.read() < 0) {}
|
||||
|
||||
if (!sd.begin(SD_CS_PIN))sd.errorHalt("sd.begin");
|
||||
|
||||
// Fill buf with known value.
|
||||
for (size_t i = 0; i < BUF_SIZE; i++) buf[i] = i;
|
||||
|
||||
// Wait to begin.
|
||||
do {delay(10);} while (Serial.read() >= 0);
|
||||
Serial.println("Type any character to stop after next file");
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
void loop() {
|
||||
// Free KB on SD.
|
||||
uint32_t freeKB = sd.vol()->freeClusterCount()*sd.vol()->blocksPerCluster()/2;
|
||||
|
||||
Serial.print("Free KB: ");
|
||||
Serial.println(freeKB);
|
||||
if (freeKB < 2*FILE_SIZE_KB) {
|
||||
Serial.println(" Done!");
|
||||
while(1);
|
||||
}
|
||||
sprintf(name, "%lu.DAT", freeKB);
|
||||
if (!file.open(name, O_WRITE | O_CREAT | O_TRUNC)) {
|
||||
sd.errorHalt("Open error!");
|
||||
}
|
||||
for (uint16_t i = 0; i < BUFS_PER_FILE; i++) {
|
||||
if (file.write(buf, BUF_SIZE) != BUF_SIZE) {
|
||||
sd.errorHalt("Write error!");
|
||||
}
|
||||
}
|
||||
file.close();
|
||||
if (Serial.available()) {
|
||||
Serial.println("Stopped!");
|
||||
while(1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user