megan gimple / Mbed 2 deprecated gimple_A5_Accel

Dependencies:   mbed MMA8452Q SDSD

Committer:
mgimple
Date:
Tue Nov 16 15:09:21 2021 +0000
Revision:
0:d1f1b7e3b561
Child:
1:bee807884a79
Initialization

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mgimple 0:d1f1b7e3b561 1 //Example Code for Accelerometer
mgimple 0:d1f1b7e3b561 2 //Can be used as a starting point for Assignment #5
mgimple 0:d1f1b7e3b561 3 //Stephen Licht
mgimple 0:d1f1b7e3b561 4 //Created 11/9/2021
mgimple 0:d1f1b7e3b561 5
mgimple 0:d1f1b7e3b561 6 #include "mbed.h"
mgimple 0:d1f1b7e3b561 7 #include "MMA8452Q.h"
mgimple 0:d1f1b7e3b561 8
mgimple 0:d1f1b7e3b561 9 //Define constants for timing of read and write:
mgimple 0:d1f1b7e3b561 10 #define READTIME 0.2
mgimple 0:d1f1b7e3b561 11 #define WRITETIME 1.0
mgimple 0:d1f1b7e3b561 12
mgimple 0:d1f1b7e3b561 13 MMA8452Q accel(p28,p27,0x1D);
mgimple 0:d1f1b7e3b561 14 Serial pc(USBTX,USBRX);
mgimple 0:d1f1b7e3b561 15
mgimple 0:d1f1b7e3b561 16 Ticker accel_reading;
mgimple 0:d1f1b7e3b561 17 Timer serial_reporting;
mgimple 0:d1f1b7e3b561 18
mgimple 0:d1f1b7e3b561 19 float accX_g,accY_g,accZ_g;
mgimple 0:d1f1b7e3b561 20
mgimple 0:d1f1b7e3b561 21 void getAccelerometerValues()
mgimple 0:d1f1b7e3b561 22 {
mgimple 0:d1f1b7e3b561 23 accX_g = accel.readX();
mgimple 0:d1f1b7e3b561 24 accY_g = accel.readY();
mgimple 0:d1f1b7e3b561 25 accZ_g = accel.readZ();
mgimple 0:d1f1b7e3b561 26 }
mgimple 0:d1f1b7e3b561 27
mgimple 0:d1f1b7e3b561 28 int main()
mgimple 0:d1f1b7e3b561 29 {
mgimple 0:d1f1b7e3b561 30 //Initialize accelerometer:
mgimple 0:d1f1b7e3b561 31 accel.init();
mgimple 0:d1f1b7e3b561 32
mgimple 0:d1f1b7e3b561 33 //Start ticker to read accelerometer at 5Hz
mgimple 0:d1f1b7e3b561 34 accel_reading.attach(&getAccelerometerValues,READTIME);
mgimple 0:d1f1b7e3b561 35
mgimple 0:d1f1b7e3b561 36 //Begin serial write timer for the first time:
mgimple 0:d1f1b7e3b561 37 serial_reporting.start();
mgimple 0:d1f1b7e3b561 38
mgimple 0:d1f1b7e3b561 39 while(1) {
mgimple 0:d1f1b7e3b561 40 //Use a timer to manage writing to the serial port (approximate timing):
mgimple 0:d1f1b7e3b561 41 if(serial_reporting.read()>WRITETIME) {
mgimple 0:d1f1b7e3b561 42 serial_reporting.reset();
mgimple 0:d1f1b7e3b561 43 serial_reporting.start();
mgimple 0:d1f1b7e3b561 44 pc.printf("X,Y,Z [Gs]: %5.2f, %5.2f, %5.2f\r\n",accX_g,accY_g,accZ_g);
mgimple 0:d1f1b7e3b561 45 }
mgimple 0:d1f1b7e3b561 46 }
mgimple 0:d1f1b7e3b561 47
mgimple 0:d1f1b7e3b561 48 }