Antonio Quevedo
/
Acc_Logger
Accelerometer logger for FRDM-KL25. Use 921600bps for serial connection over USB.
main.cpp@0:bf43b555301c, 2014-06-04 (annotated)
- 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?
User | Revision | Line number | New 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 | */ |