freefall-sleep

Dependencies:   MMA8451Q mbed

Committer:
radovan
Date:
Mon Nov 06 17:46:51 2017 +0000
Revision:
0:81c077a20809
Child:
1:af093354ea03
cvaccfreefall

Who changed what in which revision?

UserRevisionLine numberNew 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 }