store accel_z and sallen key signal
Dependencies: mbed tsi_sensor FreescaleIAP MMA8451Q MPL3115A2
Diff: main.cpp
- Revision:
- 5:03e5a9dedec4
- Parent:
- 4:64f3383f2c43
diff -r 64f3383f2c43 -r 03e5a9dedec4 main.cpp --- 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 ++;