Просмотр исходного кода

Add startMicros to LowLatencyLogger

main
Bill Greiman 10 лет назад
Родитель
Сommit
36d5c97e24
3 измененных файлов: 26 добавлений и 18 удалений
  1. +13
    -9
      LowLatencyLoggerADXL345/LowLatencyLoggerADXL345.ino
  2. +0
    -0
      LowLatencyLoggerADXL345/readme.txt
  3. +13
    -9
      SdFat/examples/LowLatencyLogger/LowLatencyLogger.ino

+ 13
- 9
LowLatencyLoggerADXL345/LowLatencyLoggerADXL345.ino Просмотреть файл

#include "SdFat.h" #include "SdFat.h"
#include "FreeStack.h" #include "FreeStack.h"
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// User data functions. Modify these functions for your data items.
#include "UserDataType.h" // Edit this include file to change data_t.

// Set useSharedSpi true for use of an SPI sensor. // Set useSharedSpi true for use of an SPI sensor.
const bool useSharedSpi = true; const bool useSharedSpi = true;


// File start time in micros.
uint32_t startMicros;
//------------------------------------------------------------------------------
// User data functions. Modify these functions for your data items.
#include "UserDataType.h" // Edit this include file to change data_t.

const uint8_t ADXL345_CS = 9; const uint8_t ADXL345_CS = 9;


const uint8_t POWER_CTL = 0x2D; //Power Control Register const uint8_t POWER_CTL = 0x2D; //Power Control Register


// Print a data record. // Print a data record.
void printData(Print* pr, data_t* data) { void printData(Print* pr, data_t* data) {
pr->print(data->time);
pr->print(data->time - startMicros);
for (int i = 0; i < ACCEL_DIM; i++) { for (int i = 0; i < ACCEL_DIM; i++) {
pr->write(','); pr->write(',');
pr->print(data->accel[i]); pr->print(data->accel[i]);
// Wait for Serial Idle. // Wait for Serial Idle.
Serial.flush(); Serial.flush();
delay(10); delay(10);
bool closeFile = false;
uint32_t bn = 0; uint32_t bn = 0;
uint32_t t0 = millis(); uint32_t t0 = millis();
uint32_t t1 = t0; uint32_t t1 = t0;
uint32_t maxDelta = 0; uint32_t maxDelta = 0;
uint32_t minDelta = 99999; uint32_t minDelta = 99999;
uint32_t maxLatency = 0; uint32_t maxLatency = 0;
// Start at a multiple of interval.
uint32_t logTime = micros()/LOG_INTERVAL_USEC + 1;
logTime *= LOG_INTERVAL_USEC;
bool closeFile = false;
uint32_t logTime = micros();
// Set time for first record of file.
startMicros = logTime + LOG_INTERVAL_USEC;
while (1) { while (1) {
// Time for next data record. // Time for next data record.
logTime += LOG_INTERVAL_USEC; logTime += LOG_INTERVAL_USEC;

LowLatencyLoggerADXL345/readme.txt.txt → LowLatencyLoggerADXL345/readme.txt Просмотреть файл


+ 13
- 9
SdFat/examples/LowLatencyLogger/LowLatencyLogger.ino Просмотреть файл

#include "SdFat.h" #include "SdFat.h"
#include "FreeStack.h" #include "FreeStack.h"
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// User data functions. Modify these functions for your data items.
#include "UserDataType.h" // Edit this include file to change data_t.

// Set useSharedSpi true for use of an SPI sensor. // Set useSharedSpi true for use of an SPI sensor.
const bool useSharedSpi = false; const bool useSharedSpi = false;


// File start time in micros.
uint32_t startMicros;
//------------------------------------------------------------------------------
// User data functions. Modify these functions for your data items.
#include "UserDataType.h" // Edit this include file to change data_t.

// Acquire a data record. // Acquire a data record.
void acquireData(data_t* data) { void acquireData(data_t* data) {
data->time = micros(); data->time = micros();


// Print a data record. // Print a data record.
void printData(Print* pr, data_t* data) { void printData(Print* pr, data_t* data) {
pr->print(data->time);
pr->print(data->time - startMicros);
for (int i = 0; i < ADC_DIM; i++) { for (int i = 0; i < ADC_DIM; i++) {
pr->write(','); pr->write(',');
pr->print(data->adc[i]); pr->print(data->adc[i]);
// Wait for Serial Idle. // Wait for Serial Idle.
Serial.flush(); Serial.flush();
delay(10); delay(10);
bool closeFile = false;
uint32_t bn = 0; uint32_t bn = 0;
uint32_t t0 = millis(); uint32_t t0 = millis();
uint32_t t1 = t0; uint32_t t1 = t0;
uint32_t maxDelta = 0; uint32_t maxDelta = 0;
uint32_t minDelta = 99999; uint32_t minDelta = 99999;
uint32_t maxLatency = 0; uint32_t maxLatency = 0;
// Start at a multiple of interval.
uint32_t logTime = micros()/LOG_INTERVAL_USEC + 1;
logTime *= LOG_INTERVAL_USEC;
bool closeFile = false;
uint32_t logTime = micros();
// Set time for first record of file.
startMicros = logTime + LOG_INTERVAL_USEC;
while (1) { while (1) {
// Time for next data record. // Time for next data record.
logTime += LOG_INTERVAL_USEC; logTime += LOG_INTERVAL_USEC;

Загрузка…
Отмена
Сохранить