first accel code

Dependencies:   MMA8451Q mbed

Committer:
aramnhammer
Date:
Sat Oct 31 23:02:35 2015 +0000
Revision:
4:dfb1c26a6cca
Parent:
3:92a1d031708b
serial pc test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aramnhammer 0:2227363aa617 1 #include "mbed.h"
aramnhammer 0:2227363aa617 2 #include "MMA8451Q.h"
aramnhammer 0:2227363aa617 3
aramnhammer 0:2227363aa617 4 #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
aramnhammer 0:2227363aa617 5 PinName const SDA = PTE25;
aramnhammer 0:2227363aa617 6 PinName const SCL = PTE24;
aramnhammer 0:2227363aa617 7 #elif defined (TARGET_KL05Z)
aramnhammer 0:2227363aa617 8 PinName const SDA = PTB4;
aramnhammer 0:2227363aa617 9 PinName const SCL = PTB3;
aramnhammer 0:2227363aa617 10 #elif defined (TARGET_K20D50M)
aramnhammer 0:2227363aa617 11 PinName const SDA = PTB1;
aramnhammer 0:2227363aa617 12 PinName const SCL = PTB0;
aramnhammer 0:2227363aa617 13 #else
aramnhammer 0:2227363aa617 14 #error TARGET NOT DEFINED
aramnhammer 0:2227363aa617 15 #endif
aramnhammer 0:2227363aa617 16
aramnhammer 0:2227363aa617 17 #define MMA8451_I2C_ADDRESS (0x1d<<1) // accel address
aramnhammer 0:2227363aa617 18
aramnhammer 4:dfb1c26a6cca 19 Serial pc(USBTX,USBRX);
aramnhammer 0:2227363aa617 20
aramnhammer 0:2227363aa617 21 // accel comes from MMA8451Q.CPP library
TheZaro 1:953d19be0550 22 struct xyz{
TheZaro 2:ff965ab5160f 23 float x;
TheZaro 2:ff965ab5160f 24 float y;
TheZaro 2:ff965ab5160f 25 float z;
TheZaro 1:953d19be0550 26 };
TheZaro 1:953d19be0550 27
aramnhammer 0:2227363aa617 28
TheZaro 2:ff965ab5160f 29
TheZaro 2:ff965ab5160f 30 void read_accel(struct xyz *data, MMA8451Q acc);
TheZaro 2:ff965ab5160f 31 void set_color(struct xyz *data);
TheZaro 2:ff965ab5160f 32 void send_data(struct xyz *data);
TheZaro 2:ff965ab5160f 33
TheZaro 2:ff965ab5160f 34
aramnhammer 0:2227363aa617 35 int main(void)
aramnhammer 0:2227363aa617 36 {
aramnhammer 0:2227363aa617 37 MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS); // PTE25, PTE24
aramnhammer 0:2227363aa617 38 PwmOut rled(LED1); //
aramnhammer 0:2227363aa617 39 PwmOut gled(LED2);
aramnhammer 0:2227363aa617 40 PwmOut bled(LED3);
TheZaro 2:ff965ab5160f 41 float x = abs(acc.getAccX());
aramnhammer 0:2227363aa617 42
aramnhammer 0:2227363aa617 43 //printf("MMA8451 ID: %d\n", acc.getWhoAmI());
aramnhammer 0:2227363aa617 44
TheZaro 1:953d19be0550 45 while (true)
TheZaro 1:953d19be0550 46 {
TheZaro 1:953d19be0550 47 struct xyz data;
TheZaro 2:ff965ab5160f 48 read_accel(&data, acc);
TheZaro 2:ff965ab5160f 49 /*set_color(&data);*/
TheZaro 1:953d19be0550 50 send_data(&data);
TheZaro 1:953d19be0550 51 wait_ms(50);
aramnhammer 0:2227363aa617 52 }
aramnhammer 0:2227363aa617 53 }
TheZaro 1:953d19be0550 54
TheZaro 2:ff965ab5160f 55 void send_data(struct xyz *data){
aramnhammer 4:dfb1c26a6cca 56 pc.printf("X = %f1.3,", data->x);
aramnhammer 4:dfb1c26a6cca 57 pc.printf("Y = %f1.3,", data->y);
aramnhammer 4:dfb1c26a6cca 58 pc.printf("Z = %f1.3 \r\n", data->z);
TheZaro 2:ff965ab5160f 59 }
TheZaro 2:ff965ab5160f 60
TheZaro 2:ff965ab5160f 61 void read_accel(struct xyz *data, MMA8451Q acc)
TheZaro 1:953d19be0550 62 {
TheZaro 2:ff965ab5160f 63 data->x = abs(acc.getAccX());
TheZaro 2:ff965ab5160f 64 data->y = abs(acc.getAccY());
TheZaro 2:ff965ab5160f 65 data->z = abs(acc.getAccZ());
TheZaro 1:953d19be0550 66
TheZaro 1:953d19be0550 67 }
TheZaro 1:953d19be0550 68
TheZaro 1:953d19be0550 69
TheZaro 2:ff965ab5160f 70 /*void set_color(struct *xyz data)
TheZaro 1:953d19be0550 71 {
TheZaro 1:953d19be0550 72 rled = 1.0f - data->x;
TheZaro 1:953d19be0550 73 gled = 1.0f - data->y;
TheZaro 1:953d19be0550 74 bled = 1.0f - data->z;
TheZaro 2:ff965ab5160f 75 }*/
TheZaro 1:953d19be0550 76
TheZaro 1:953d19be0550 77
TheZaro 1:953d19be0550 78
TheZaro 1:953d19be0550 79
TheZaro 1:953d19be0550 80
TheZaro 1:953d19be0550 81