
first accel code
main.cpp@4:dfb1c26a6cca, 2015-10-31 (annotated)
- 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?
User | Revision | Line number | New 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 |