store accel_z and sallen key signal

Dependencies:   mbed tsi_sensor FreescaleIAP MMA8451Q MPL3115A2

Revision:
5:03e5a9dedec4
Parent:
4:64f3383f2c43
--- a/main.cpp	Fri Nov 30 18:57:32 2018 +0000
+++ b/main.cpp	Wed Dec 05 23:13:47 2018 +0000
@@ -40,10 +40,11 @@
 #define SECTOR_SIZE             1024
 #define RESERVED_SECTOR         32
 
-#define ACQ_TIMER_PERIOD        0.5   // Time between 2 acquisitions in seconds
+#define ACQ_TIMER_PERIOD        0.05 // Time between 2 acquisitions in seconds
+                                     // f_sampling = 1 / ACQ_TIMER_PERIOD = 20Hz
 
-#define N_PER_AVERAGE           8
-
+#define N_PER_AVERAGE           20   // f_storage = f_sampling / N_PER_AVERAGE = 2Hz
+                                     
 #define BOARD_STRAIGHT          0
 #define BOARD_UPSIDE_DOWN       1
 #define ACCEL_MINIMUM_FOR_STORAGE   0
@@ -62,8 +63,8 @@
 typedef struct{
     unsigned short Accel_Z;
     unsigned short Sallen_Key;
-    unsigned short Interface;
-    unsigned short Useless;
+//    unsigned short Interface;
+//    unsigned short Useless;
 } Stored_Data;
 
 int Number_Stored_Points;
@@ -285,6 +286,7 @@
     int Count_Measurements;
     Stored_Data myStoredData;
     
+    double sallen_key = 0;
     
 /*** Erase all Flash Page **/          
     for (Flash_Ptr = Flash_Base_Address ; Flash_Ptr < KL25_Flash_Size ; Flash_Ptr += 0x400)
@@ -305,7 +307,7 @@
 /*** Reset new variables **/          
 
     myStoredData.Accel_Z= 0;
-    myStoredData.Interface = 0;
+//    myStoredData.Interface = 0;
     myStoredData.Sallen_Key = 0;
     
     Board_Position = BOARD_STRAIGHT;
@@ -351,13 +353,14 @@
 
             // Get ADC values
             myData.Analog_PTE20 = myPTE20.read_u16(); 
-            myData.Analog_PTE21 = myPTE21.read_u16();
+ //           myData.Analog_PTE21 = myPTE21.read_u16();
             
             // add data to stored variable
             myStoredData.Accel_Z    = myData.Accel_Z;
             
-            myStoredData.Sallen_Key += myData.Analog_PTE20;
-            myStoredData.Interface += myData.Analog_PTE21;
+            sallen_key += myData.Analog_PTE20;
+//            myStoredData.Sallen_Key += myData.Analog_PTE20;
+//            myStoredData.Interface += myData.Analog_PTE21;
             
             Host_Comm.printf("\n\r%d %d", Count_Measurements, myStoredData.Accel_Z);
             
@@ -366,8 +369,13 @@
                 
                 Count_Measurements = 0;
                 
-                myStoredData.Sallen_Key = myStoredData.Sallen_Key / N_PER_AVERAGE;
-                myStoredData.Interface = myStoredData.Interface / N_PER_AVERAGE;
+                sallen_key = sallen_key/N_PER_AVERAGE;
+                myStoredData.Sallen_Key = (short) sallen_key;
+//                myStoredData.Sallen_Key = myStoredData.Sallen_Key / N_PER_AVERAGE;
+//                myStoredData.Interface = myStoredData.Interface / N_PER_AVERAGE;
+
+                // resets the value at the average
+                sallen_key = 0;
 
  /*** Save Data in Flash ***/
                 Number_Stored_Points ++;
@@ -411,7 +419,7 @@
     Stored_Data myRead_Data;                                    // Data Structure used to retrieve saved value from Flash
     
     float Ethanol_Sallen_Key;
-    float Ethanol_Interface;
+//    float Ethanol_Interface;
     
     Clear_Led(); 
   
@@ -419,11 +427,11 @@
     Record_Counter = 0;
     Flash_Record_Ptr = 0;
     
-    Host_Comm.printf("\n\r# AccZ Eth_SK Eth_Int");  
+    Host_Comm.printf("\n\r# AccZ Eth_SK");  
      
     while (Record_Counter < Number_Stored_Points && Record_Counter < Max_Record) 
     {         
-        Led_Green = !Led_Green;
+        Led_Green = !Led_Green; 
         Led_Blue = !Led_Green;
         
         if(Host_Comm.readable()) 
@@ -446,11 +454,11 @@
         else
         {
             Ethanol_Sallen_Key  = ((float) myRead_Data.Sallen_Key / 0XFFFF) * KL25Z_VDD;    // Convert to voltage
-            Ethanol_Interface   = ((float) myRead_Data.Interface / 0XFFFF) * KL25Z_VDD;                          
+//            Ethanol_Interface   = ((float) myRead_Data.Interface / 0XFFFF) * KL25Z_VDD;                          
             
             Host_Comm.printf("\n\r%d ", Record_Counter);
             Host_Comm.printf("%d ", myRead_Data.Accel_Z);
-            Host_Comm.printf("%1.3f %1.3f ", Ethanol_Sallen_Key, Ethanol_Interface);               
+            Host_Comm.printf("%1.3f", Ethanol_Sallen_Key);               
         }
         
         Record_Counter ++;