Working version. ADXL355 data saved to microSD.

Revision:
0:e2579e8d9b13
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utility.cpp	Fri Sep 29 12:53:50 2017 +0000
@@ -0,0 +1,115 @@
+/*****************************************************************************
+* Includes
+*****************************************************************************/
+#include "utility.h"
+
+
+/*****************************************************************************
+* Global Variables
+*****************************************************************************/
+extern bool volatile button_int_f;/* Flag pulsante pigiato */
+extern DigitalOut GREENpin;
+extern DigitalOut BLUpin;
+extern DigitalOut VIOLApin;
+//extern uint8_t     buffer1;
+//extern uint8_t     buffer2;
+extern uint16_t volatile  dataInBuffer;
+extern uint8_t  *activeBuffer;
+extern adxl355_handler adxl355_config;
+extern bool     volatile buf_overflow;//Overflow del buffer
+extern SPI spiHandler;
+extern DigitalOut spiADXL355cs;
+//extern Serial sdCard;
+//extern FILE *fp;
+extern volatile bool start_writing;
+//extern DigitalOut sdSyncro;
+
+
+/*****************************************************************************
+* Static Variables
+*****************************************************************************/
+/* ONLY FOR TEST*/
+//static uint32_t  file_random_num_24b;
+//static uint32_t  file_random_num_20b;
+//static uint32_t  file_random_num_12b;
+
+/* Dati del singolo record */
+//static uint32_t  record_index = 1;
+
+
+/* Record per la acquisizione dei dati */
+//static record acquisition_record = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+/* Record per la scrittura dei dati su SD card */
+//static record sdWriting_record = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+/*****************************************************************************
+* Functions
+*****************************************************************************/
+/* Funzione per generare i numeri random che andranno scritti sul file */
+/*static uint32_t myRand(uint32_t low, uint32_t high) 
+{
+    static uint32_t seed = 0;
+    
+    seed++;
+    srand(seed);
+    return rand() % (high - low + 1) + low;
+}*/
+/*
+static uint32_t swap_uint32( uint32_t val )
+{
+    val = ((val << 8) & 0xFF00FF00 ) | ((val >> 8) & 0xFF00FF ); 
+    return (val << 16) | (val >> 16);
+}
+*/
+
+/* Funzione di gestione interrupt pulsante */
+/*void pressed(void)
+{       
+    button_int_f = true;
+}*/
+
+
+/* Funzione di gestione dell'interrupt dell'ADXL355 */
+/*void adxl355_int_handler(void) 
+{   
+
+}*/
+
+/* Funzione di trasferimento su bus SPI */
+uint16_t adxl355_spi_transfer(uint8_t * rbuffer, uint32_t rlen)
+{
+    uint16_t ads_spi_transfer_error = 0u;
+    uint8_t  ads_spi_transfer_data[MAX_LENGTH_SPI_TRANSFER];
+    uint8_t  ads_spi_transfer_index;
+    
+    if(rlen > MAX_LENGTH_SPI_TRANSFER) 
+    {
+        ads_spi_transfer_error = (uint16_t)__LINE__;// TROPPI BYTE DA INVIARE !!!
+    } 
+    else 
+    {
+        memcpy(ads_spi_transfer_data, rbuffer, rlen);
+        spiADXL355cs = 0;
+                
+        for(ads_spi_transfer_index = 0; ads_spi_transfer_index < rlen; ads_spi_transfer_index++)
+        {
+            rbuffer[ads_spi_transfer_index] = spiHandler.write(ads_spi_transfer_data[ads_spi_transfer_index]);
+        }
+                
+        spiADXL355cs = 1;     
+    }
+
+    return ads_spi_transfer_error;
+};
+
+
+/* Funzione di salvataggio su SD Card */
+/*void save_data_SD_card(uint8_t* data2save, uint16_t length)
+{
+
+}*/
+
+
+
+
+