Radovan Zubaľ
/
FRDM_MMA8451Qfreefall
freefall-sleep
main.cpp@0:81c077a20809, 2017-11-06 (annotated)
- Committer:
- radovan
- Date:
- Mon Nov 06 17:46:51 2017 +0000
- Revision:
- 0:81c077a20809
- Child:
- 1:af093354ea03
cvaccfreefall
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
radovan | 0:81c077a20809 | 1 | #include "mbed.h" |
radovan | 0:81c077a20809 | 2 | #include "MMA8451Q.h" |
radovan | 0:81c077a20809 | 3 | |
radovan | 0:81c077a20809 | 4 | #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z) |
radovan | 0:81c077a20809 | 5 | PinName const SDA = PTE25; |
radovan | 0:81c077a20809 | 6 | PinName const SCL = PTE24; |
radovan | 0:81c077a20809 | 7 | #elif defined (TARGET_KL05Z) |
radovan | 0:81c077a20809 | 8 | PinName const SDA = PTB4; |
radovan | 0:81c077a20809 | 9 | PinName const SCL = PTB3; |
radovan | 0:81c077a20809 | 10 | #elif defined (TARGET_K20D50M) |
radovan | 0:81c077a20809 | 11 | PinName const SDA = PTB1; |
radovan | 0:81c077a20809 | 12 | PinName const SCL = PTB0; |
radovan | 0:81c077a20809 | 13 | #else |
radovan | 0:81c077a20809 | 14 | #error TARGET NOT DEFINED |
radovan | 0:81c077a20809 | 15 | #endif |
radovan | 0:81c077a20809 | 16 | |
radovan | 0:81c077a20809 | 17 | #define MMA8451_I2C_ADDRESS (0x1d<<1) |
radovan | 0:81c077a20809 | 18 | InterruptIn intin(PTA15); |
radovan | 0:81c077a20809 | 19 | MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS); |
radovan | 0:81c077a20809 | 20 | Serial pc(USBTX, USBRX); |
radovan | 0:81c077a20809 | 21 | |
radovan | 0:81c077a20809 | 22 | |
radovan | 0:81c077a20809 | 23 | void intfun(){ |
radovan | 0:81c077a20809 | 24 | pc.printf("tu\n\r"); |
radovan | 0:81c077a20809 | 25 | |
radovan | 0:81c077a20809 | 26 | uint8_t datan[1]; |
radovan | 0:81c077a20809 | 27 | acc.readRegs(0x0C,datan,1); |
radovan | 0:81c077a20809 | 28 | if((datan[0]&0x04)==0x04){ |
radovan | 0:81c077a20809 | 29 | acc.readRegs(0x16,datan,1); |
radovan | 0:81c077a20809 | 30 | pc.printf("fall \n\r"); |
radovan | 0:81c077a20809 | 31 | |
radovan | 0:81c077a20809 | 32 | } |
radovan | 0:81c077a20809 | 33 | } |
radovan | 0:81c077a20809 | 34 | |
radovan | 0:81c077a20809 | 35 | int main(void) |
radovan | 0:81c077a20809 | 36 | { |
radovan | 0:81c077a20809 | 37 | pc.printf("Init \n\r"); |
radovan | 0:81c077a20809 | 38 | |
radovan | 0:81c077a20809 | 39 | |
radovan | 0:81c077a20809 | 40 | intin.fall(&intfun); |
radovan | 0:81c077a20809 | 41 | |
radovan | 0:81c077a20809 | 42 | uint8_t krok1[2] = {0x2A, 0x20}; |
radovan | 0:81c077a20809 | 43 | acc.writeRegs(krok1, 2); |
radovan | 0:81c077a20809 | 44 | |
radovan | 0:81c077a20809 | 45 | uint8_t krok2[2] = {0x15, 0xB8}; |
radovan | 0:81c077a20809 | 46 | acc.writeRegs(krok2,2); |
radovan | 0:81c077a20809 | 47 | |
radovan | 0:81c077a20809 | 48 | uint8_t krok3[2] = {0x17, 0x03}; |
radovan | 0:81c077a20809 | 49 | acc.writeRegs(krok3,2); |
radovan | 0:81c077a20809 | 50 | |
radovan | 0:81c077a20809 | 51 | uint8_t krok4[2] = {0x18, 0x06}; |
radovan | 0:81c077a20809 | 52 | acc.writeRegs(krok4,2); |
radovan | 0:81c077a20809 | 53 | |
radovan | 0:81c077a20809 | 54 | uint8_t krok5[2] = {0x2D, 0x04}; |
radovan | 0:81c077a20809 | 55 | acc.writeRegs(krok5,2); |
radovan | 0:81c077a20809 | 56 | |
radovan | 0:81c077a20809 | 57 | uint8_t krok6[2] = {0x2E, 0x00}; |
radovan | 0:81c077a20809 | 58 | acc.writeRegs(krok6,2); |
radovan | 0:81c077a20809 | 59 | |
radovan | 0:81c077a20809 | 60 | |
radovan | 0:81c077a20809 | 61 | //krok7 |
radovan | 0:81c077a20809 | 62 | uint8_t data[1]; |
radovan | 0:81c077a20809 | 63 | acc.readRegs(0x2A,data,1); |
radovan | 0:81c077a20809 | 64 | data[0]=data[0]| 0x01; |
radovan | 0:81c077a20809 | 65 | |
radovan | 0:81c077a20809 | 66 | uint8_t krok7[2] = {0x2A, data[0]}; |
radovan | 0:81c077a20809 | 67 | krok7[1] = data[0]; |
radovan | 0:81c077a20809 | 68 | acc.writeRegs(krok7,2); |
radovan | 0:81c077a20809 | 69 | |
radovan | 0:81c077a20809 | 70 | |
radovan | 0:81c077a20809 | 71 | while (true) { |
radovan | 0:81c077a20809 | 72 | |
radovan | 0:81c077a20809 | 73 | } |
radovan | 0:81c077a20809 | 74 | } |