12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #include "UserTypes.h"
- static uint32_t startMicros;
- const uint8_t ADXL345_CS = 9;
- const uint8_t POWER_CTL = 0x2D;
- const uint8_t DATA_FORMAT = 0x31;
- const uint8_t DATAX0 = 0x32;
- const uint8_t DATAX1 = 0x33;
- const uint8_t DATAY0 = 0x34;
- const uint8_t DATAY1 = 0x35;
- const uint8_t DATAZ0 = 0x36;
- const uint8_t DATAZ1 = 0x37;
- void writeADXL345Register(const uint8_t registerAddress, const uint8_t value) {
-
- SPI.beginTransaction(SPISettings(5000000, MSBFIRST, SPI_MODE3));
- digitalWrite(ADXL345_CS, LOW);
- SPI.transfer(registerAddress);
- SPI.transfer(value);
- digitalWrite(ADXL345_CS, HIGH);
- SPI.endTransaction();
- }
- void userSetup() {
- SPI.begin();
- pinMode(ADXL345_CS, OUTPUT);
- digitalWrite(ADXL345_CS, HIGH);
-
- writeADXL345Register(DATA_FORMAT, 0x01);
-
- writeADXL345Register(POWER_CTL, 0x08);
- }
- void acquireData(data_t* data) {
-
- SPI.beginTransaction(SPISettings(5000000, MSBFIRST, SPI_MODE3));
- data->time = micros();
- digitalWrite(ADXL345_CS, LOW);
-
- SPI.transfer(DATAX0 | 0XC0);
- data->accel[0] = SPI.transfer(0) | (SPI.transfer(0) << 8);
- data->accel[1] = SPI.transfer(0) | (SPI.transfer(0) << 8);
- data->accel[2] = SPI.transfer(0) | (SPI.transfer(0) << 8);
- digitalWrite(ADXL345_CS, HIGH);
- SPI.endTransaction();
- }
- void printData(Print* pr, data_t* data) {
- if (startMicros == 0) {
- startMicros = data->time;
- }
- pr->print(data->time - startMicros);
- for (int i = 0; i < ACCEL_DIM; i++) {
- pr->write(',');
- pr->print(data->accel[i]);
- }
- pr->println();
- }
- void printHeader(Print* pr) {
- startMicros = 0;
- pr->println(F("micros,ax,ay,az"));
- }
|