Example program for FRDM boards with a Freescale MMA8451Q accelerometer

Dependencies:   MMA8451Q mbed

Fork of FRDM_MMA8451Q by Freescale

main.cpp

Committer:
sam_grove
Date:
2014-02-21
Revision:
8:d797bfa9f76e
Parent:
5:bf5becf7469c
Child:
9:d4bffe27a7bf

File content as of revision 8:d797bfa9f76e:

#include "mbed.h"
#include "MMA8451Q.h"

#if   defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
  PinName const SDA = PTE25;
  PinName const SCL = PTE24;
#elif defined (TARGET_KL05Z)
  PinName const SDA = PTB4;
  PinName const SCL = PTB3;
#else
  #error TARGET NOT DEFINED
#endif

#define MMA8451_I2C_ADDRESS (0x1d<<1)

int main(void) {
    MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
    PwmOut rled(LED1);
    PwmOut gled(LED2);
    PwmOut bled(LED3);
    
    printf("MMA8451 ID: %d\n", acc.getWhoAmI());

    while (true) {
        float x, y, z;
        x = rled = 1.0 - abs(acc.getAccX());
        y = gled = 1.0 - abs(acc.getAccY());
        z = bled = 1.0 - abs(acc.getAccZ());
        wait(0.1);
        printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n", x, y, z);
    }
}