final product

Dependencies:   FRDM_MMA8451Q mbed

Fork of mbed_Pedometer_pressup by Costa

Revision:
1:bf4ad12efb64
Parent:
0:0cccdf8e396f
Child:
2:b6569bd9af81
diff -r 0cccdf8e396f -r bf4ad12efb64 main.cpp
--- a/main.cpp	Tue Jun 14 14:45:41 2016 +0000
+++ b/main.cpp	Thu Jun 16 14:45:02 2016 +0000
@@ -1,61 +1,82 @@
 #include "mbed.h"
+#include "MMA8451Q.h"
 //#include "TSISensor.h"
 #define DEBUG
 #define INFOMESSAGES
 #define WARNMESSAGES
 #define ERRMESSAGES
- 
+
 #define FUNCNAME "MAIN"
- 
+
+
+
+#if   defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
+PinName const SDA = PTE25;
+PinName const SCL = PTE24;
+#elif defined (TARGET_KL05Z)
+PinName const SDA = PTB4;
+PinName const SCL = PTB3;
+#elif defined (TARGET_K20D50M)
+PinName const SDA = PTB1;
+PinName const SCL = PTB0;
+#else
+#error TARGET NOT DEFINED
+#endif
+
+#define MMA8451_I2C_ADDRESS (0x1d<<1)
+
+
 #ifdef NoDEBUG
 #define DBG(x, ...) pc.printf("    ["FUNCNAME" : DBG] "x" <line %d>\r\n", ##__VA_ARGS__,__LINE__);
 #else
 #define DBG(x, ...)
 #endif
- 
+
 #ifdef ERRMESSAGES
 #define ERR(x, ...) pc.printf(" ["FUNCNAME" : ERR] "x"\r\n", ##__VA_ARGS__);
 #else
 #define ERR(x, ...)
 #endif
- 
+
 #ifdef WARNMESSAGES
 #define WARN(x, ...) printf("["FUNCNAME" : WARN] "x"\r\n", ##__VA_ARGS__);
 #else
 #define WARN(x, ...)
 #endif
- 
+
 #ifdef INFOMESSAGES
-#define INFO(x, ...) pc.printf("["FUNCNAME" : INFO] "x"\r\n", ##__VA_ARGS__);
+#define INFO(x, ...) pc.printf("["FUNCNAME" : INFO] "x"\r\n",##__VA_ARGS__);
 #else
 #define INFO(x, ...)
 #endif
- 
+
 #define BUFF_SIZE 1024
 // PIN DEFS NOW FOR OLD FIRMWARE VERSION OF THE KL25Z
 Serial  pc(USBTX, USBRX);
 //RawSerial  dev(D1, D0);
-Serial  dev(PTD3,PTD2); //tx,rx
+Serial  dev(PTE22,PTE23); //tx,rx
 DigitalOut led1(LED1);
 DigitalOut led4(LED3); // CHANGE TO LED 3
-DigitalOut reset(PTA13,1);
- 
- 
-    PwmOut led(LED_GREEN);
+DigitalOut reset(PTB0,1);
+
+
+
+PwmOut led(LED_GREEN);
 //    TSISensor tsi;
 volatile int state=0;
 volatile int ready=0;
- 
+int glue=0;
 char ipAddress[20];
 char macAddress[32];
 char *buffer;
 unsigned int bufferPnt=0;
- 
+
 void dev_recv()
 {
     char c;
- 
+
     int count = 0;
+
     led1 = !led1;
     if(bufferPnt==0) {
         memset(buffer,0,BUFF_SIZE);
@@ -63,14 +84,14 @@
     while(dev.readable()) {
         c = (char)dev.getc();
 #ifdef DEBUG
-       pc.putc(c);
+        pc.putc(c);
 #endif
         buffer[bufferPnt]=c;
         bufferPnt++;
         if (bufferPnt>1000) {
             ready=1;
         }
-       // if ((c==0x0a)||(c==0x0d)){
+        // if ((c==0x0a)||(c==0x0d)){
         //     ready=1;
         //     }else
         if (c==0x0a) {
@@ -86,7 +107,7 @@
         }
     }
 }
- 
+
 void pc_recv()
 {
     char c;
@@ -98,11 +119,11 @@
         if(c==13) {
             dev.putc(10);
             pc.putc(10);
-            }
- 
+        }
+
     }
 }
- 
+
 char * OKResponse(char *test, const char *pattern)
 {
     char *p= strstr(test,pattern);
@@ -116,16 +137,27 @@
 }
 int main()
 {
+    MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
     float touch;
     buffer=(char *)calloc(BUFF_SIZE,1);
     reset=0;
     int counter=0;
+    int zcount;
+    int xcount;
+    zcount=0;
+    xcount=0;
+    float a;
+    float b;
+    b=1.0;
+    a=1.0;
+    float x;
+    float z;
     pc.baud(115200);
     dev.baud(115200);
     pc.attach(&pc_recv, Serial::RxIrq);
     dev.attach(&dev_recv, Serial::RxIrq);
     pc.printf("Start up\n\r");
-    wait(1.5);
+    wait(3.0);
     reset=1;
     char * resp=NULL;
     pc.printf("Here \n\r");
@@ -159,7 +191,7 @@
                         dev.printf("AT+RST\r\n");
                         state++;
                     }
- 
+
                     break;
                 }
                 case 4: {
@@ -168,17 +200,17 @@
                         dev.printf("AT+CWMODE=1\r\n");
                         state++;
                     }
- 
+
                     break;
                 }
                 case 5: {
                     resp=OKResponse(buffer,"OK");
                     if (resp!=NULL) {
-                        
-                        dev.printf("AT+CWJAP=\"CWMWIFI\",\"CWM2016TT\"\r\n");
+
+                        dev.printf("AT+CWJAP=\"BTHub3-WXWX\",\"fdd6f7c682\"\r\n");
                         state++;
                     }
- 
+
                     break;
                 }
                 case 6: {
@@ -188,7 +220,7 @@
                         dev.printf("AT+CIFSR\r\n");
                         state++;
                     }
- 
+
                     break;
                 }
                 case 7: {
@@ -197,62 +229,115 @@
                         char *strt = strtok(buffer,"\"");
                         strcpy(ipAddress,strtok(NULL,"\""));
                         strtok(NULL,"\"");
-                         strcpy(macAddress,strtok(NULL,"\""));
+                        strcpy(macAddress,strtok(NULL,"\""));
                         INFO("mac Address = %s", macAddress);
                         INFO("IP Address = %s", ipAddress);
-                          dev.printf("AT+CIPMUX=1\r\n");
+                        dev.printf("AT+CIPMUX=1\r\n");
                         state++;
                     }
- 
+
                     break;
                 }
                 case 8: {
                     resp=OKResponse(buffer,"OK");
                     if (resp!=NULL) {
-                       INFO("Ready");
-                       dev.printf("AT+CIPSTART=4,\"TCP\",\"192.168.1.11\",8080\r\n");
-                       state++;
+
+                        INFO("Ready 8");
+                        dev.printf("AT+CIPSTART=4,\"TCP\",\"192.168.1.91\",8080\r\n");
+                        state++;
+                        wait(0.1);
+
                     }
- 
-                     break;
-                     }
+
+                    break;
+                }
                 case 9: {
+
                     resp=OKResponse(buffer,"OK");
                     if (resp!=NULL) {
-                       INFO("Ready");
-                       state++; 
-                       dev.printf("AT+CIPSEND=4,10\r\n");
+
+                        INFO("Ready 9");
+                        state++;
+                        zcount=0;
+                        a=1.0;
+
                     }
- 
-                     break;
-                     }
-                    case 10: {
-                    resp=OKResponse(buffer,">");
-                    if (resp!=NULL) {
-                       INFO("SENDING");
-                       state++; 
-  //                     touch=tsi.readPercentage();
-    //                   dev.printf("TSI=%1.2f\n\r",touch);
-                       pc.printf("AAAAAAAAAA");
-                       //INFO("sensor=%1.2f",float)tsi.readPercentage());
+
+                }
+                case 10: {
+
+                    while (true) {
+                        z = (acc.getAccZ());
+                        x = (acc.getAccX());
+
+                        if (a==1.0) {
+
+                            if (z<0.0) {
+                                a=0.0;
+                                zcount++;
+                                pc.printf(".......zc=%02u\r\n",zcount);
+
+                                resp=OKResponse(buffer,"OK");
+                                if (resp!=NULL) {
+                                    INFO("Ready 10");
+                                    dev.printf("AT+CIPSEND=4,2\r\n");
+                                    wait(0.1);
+
+                                }
+                                wait(0.1);
+                             //  while (OKResponse(buffer,">")!=NULL){
+                             //   printf(".\r\n");
+                              //  wait(1);
+                              //  };
+                                
+                                    INFO("SENDING");
+
+                                    wait(0.2);
+                                    dev.printf("%02u\r\n",zcount);
+
+                                
+
+
+                            }
+
+                        }
+                        if (z>0) {
+                            a=1.0;
+                        }
                     }
-                    case 11: {
-                    resp=OKResponse(buffer,"SEND OK");
-                    if (resp!=NULL) {
-                       INFO("SEND OK");
-                       state=9; 
-                       //wait(2);
-                       }
-                       wait(1);
-                       state=9; 
+                    if (a==0) {
+                        if (z<0) {
+                            a=0.0;
+                        }
+                        if (z>0) {
+                            a=1.0;
+                        }
                     }
- 
-                     break;
+                    if (b==1) {
+                        if (x<0) {
+                            b=0.0;
+                            xcount=xcount+1;
+                            //printf("Xcount: %u \n\r",xcount);
+
+                        }
+                        if (x>0) {
+                            b=1.0;
+                        }
+                    }
+                    if (b==0) {
+                        if (x<0) {
+                            b=0.0;
+                        }
+                        if (x>0) {
+                            b=1.0;
+                        }
+                    }
+
                 }
- 
- 
+                break;
             }
         }
         //__WFI(); // DELETED AS IT KILLS THE KL25 RESPONSIVITY
     }
-//}
\ No newline at end of file
+
+}