Accelerometer logger for FRDM-KL25. Use 921600bps for serial connection over USB.

Dependencies:   MMA8451Q mbed

Committer:
quevedo
Date:
Wed Jun 04 19:18:25 2014 +0000
Revision:
0:bf43b555301c
Accelerometer logger for the FRDM-KL25 board, at a data rate of 800Hz. Please use a serial connection at 921600bps.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
quevedo 0:bf43b555301c 1 #include "mbed.h"
quevedo 0:bf43b555301c 2 #include "MMA8451Q.h"
quevedo 0:bf43b555301c 3
quevedo 0:bf43b555301c 4 // Defines for sensors I2C
quevedo 0:bf43b555301c 5 #define SDA PTE25
quevedo 0:bf43b555301c 6 #define SCL PTE24
quevedo 0:bf43b555301c 7 #define INT1 PTA14
quevedo 0:bf43b555301c 8
quevedo 0:bf43b555301c 9 // Define for LED
quevedo 0:bf43b555301c 10 #define LRED PTC7
quevedo 0:bf43b555301c 11
quevedo 0:bf43b555301c 12 MMA8451Q acc(SDA, SCL);
quevedo 0:bf43b555301c 13 Serial pc(USBTX, USBRX);
quevedo 0:bf43b555301c 14 Ticker t; // Periodical timer for reading sensors
quevedo 0:bf43b555301c 15 //InterruptIn drdy(INT1);
quevedo 0:bf43b555301c 16 DigitalOut myled(LRED);
quevedo 0:bf43b555301c 17
quevedo 0:bf43b555301c 18 void newdata() {
quevedo 0:bf43b555301c 19 int16_t accdata[3];
quevedo 0:bf43b555301c 20
quevedo 0:bf43b555301c 21 myled = !myled;
quevedo 0:bf43b555301c 22 // Reads all accelerometer and magnetometer data, and also reads analog from FSR1 and FSR2
quevedo 0:bf43b555301c 23 acc.getAccAllAxis(accdata);
quevedo 0:bf43b555301c 24 // Now we transmit data
quevedo 0:bf43b555301c 25 pc.printf("%d,%d,%d\r\n", accdata[0], accdata[1], accdata[2]);
quevedo 0:bf43b555301c 26 }
quevedo 0:bf43b555301c 27
quevedo 0:bf43b555301c 28 int main() {
quevedo 0:bf43b555301c 29 char cmd;
quevedo 0:bf43b555301c 30 myled = 1;
quevedo 0:bf43b555301c 31 pc.baud(921600); // 176kbps ou mais
quevedo 0:bf43b555301c 32 //drdy.disable_irq();
quevedo 0:bf43b555301c 33 //drdy.fall(&newdata);
quevedo 0:bf43b555301c 34
quevedo 0:bf43b555301c 35 while(1) {
quevedo 0:bf43b555301c 36 if(pc.readable()) {
quevedo 0:bf43b555301c 37 cmd = pc.getc();
quevedo 0:bf43b555301c 38 if(cmd == '1') {
quevedo 0:bf43b555301c 39 t.attach(&newdata, 0.00125); // 800Hz samples
quevedo 0:bf43b555301c 40 //drdy.enable_irq();
quevedo 0:bf43b555301c 41 } else if(cmd == '0') {
quevedo 0:bf43b555301c 42 t.detach();
quevedo 0:bf43b555301c 43 //drdy.disable_irq();
quevedo 0:bf43b555301c 44 myled = 1;
quevedo 0:bf43b555301c 45 }
quevedo 0:bf43b555301c 46 }
quevedo 0:bf43b555301c 47 }
quevedo 0:bf43b555301c 48 }
quevedo 0:bf43b555301c 49
quevedo 0:bf43b555301c 50 /*
quevedo 0:bf43b555301c 51
quevedo 0:bf43b555301c 52 */