freefall-sleep

Dependencies:   MMA8451Q mbed

Revision:
1:af093354ea03
Parent:
0:81c077a20809
--- a/main.cpp	Mon Nov 06 17:46:51 2017 +0000
+++ b/main.cpp	Mon Nov 13 15:41:00 2017 +0000
@@ -1,6 +1,7 @@
 #include "mbed.h"
 #include "MMA8451Q.h"
-
+#include "cmsis.h"
+#include "PeripheralPins.h"
 #if   defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
   PinName const SDA = PTE25;
   PinName const SCL = PTE24;
@@ -19,16 +20,23 @@
     MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
 Serial pc(USBTX, USBRX);
 
-
+void sleeep()
+{
+    SMC->PMPROT = SMC_PMPROT_AVLLS_MASK | SMC_PMPROT_ALLS_MASK | SMC_PMPROT_AVLP_MASK;
+ 
+    //Normal sleep mode for ARM core:
+    SCB->SCR = 0;
+    __WFI();
+}
+ 
 void intfun(){
-                pc.printf("tu\n\r"); 
 
         uint8_t datan[1]; 
 acc.readRegs(0x0C,datan,1);
 if((datan[0]&0x04)==0x04){
     acc.readRegs(0x16,datan,1);
-        pc.printf("fall \n\r"); 
-
+        pc.printf("fall_sleep \n\r"); 
+        sleeep();
     }
     }
 
@@ -66,8 +74,8 @@
     uint8_t krok7[2] = {0x2A, data[0]};
     krok7[1] = data[0];
     acc.writeRegs(krok7,2);
-
-
+    pc.printf("sleep \n\r"); 
+    sleeep();
     while (true) {
        
     }