Davide Urbano / Mbed OS microSDreader
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers utility.cpp Source File

utility.cpp

00001 /*****************************************************************************
00002 * Includes
00003 *****************************************************************************/
00004 #include "utility.h"
00005 
00006 
00007 /*****************************************************************************
00008 * Global Variables
00009 *****************************************************************************/
00010 extern bool volatile button_int_f;/* Flag pulsante pigiato */
00011 extern DigitalOut GREENpin;
00012 extern DigitalOut BLUpin;
00013 extern DigitalOut VIOLApin;
00014 //extern uint8_t     buffer1;
00015 //extern uint8_t     buffer2;
00016 extern uint16_t volatile  dataInBuffer;
00017 extern uint8_t  *activeBuffer;
00018 extern adxl355_handler adxl355_config;
00019 extern bool     volatile buf_overflow;//Overflow del buffer
00020 extern SPI spiHandler;
00021 extern DigitalOut spiADXL355cs;
00022 //extern Serial sdCard;
00023 //extern FILE *fp;
00024 extern volatile bool start_writing;
00025 //extern DigitalOut sdSyncro;
00026 
00027 
00028 /*****************************************************************************
00029 * Static Variables
00030 *****************************************************************************/
00031 /* ONLY FOR TEST*/
00032 //static uint32_t  file_random_num_24b;
00033 //static uint32_t  file_random_num_20b;
00034 //static uint32_t  file_random_num_12b;
00035 
00036 /* Dati del singolo record */
00037 //static uint32_t  record_index = 1;
00038 
00039 
00040 /* Record per la acquisizione dei dati */
00041 //static record acquisition_record = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
00042 /* Record per la scrittura dei dati su SD card */
00043 //static record sdWriting_record = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
00044 
00045 /*****************************************************************************
00046 * Functions
00047 *****************************************************************************/
00048 /* Funzione per generare i numeri random che andranno scritti sul file */
00049 /*static uint32_t myRand(uint32_t low, uint32_t high) 
00050 {
00051     static uint32_t seed = 0;
00052     
00053     seed++;
00054     srand(seed);
00055     return rand() % (high - low + 1) + low;
00056 }*/
00057 /*
00058 static uint32_t swap_uint32( uint32_t val )
00059 {
00060     val = ((val << 8) & 0xFF00FF00 ) | ((val >> 8) & 0xFF00FF ); 
00061     return (val << 16) | (val >> 16);
00062 }
00063 */
00064 
00065 /* Funzione di gestione interrupt pulsante */
00066 /*void pressed(void)
00067 {       
00068     button_int_f = true;
00069 }*/
00070 
00071 
00072 /* Funzione di gestione dell'interrupt dell'ADXL355 */
00073 /*void adxl355_int_handler(void) 
00074 {   
00075 
00076 }*/
00077 
00078 /* Funzione di trasferimento su bus SPI */
00079 uint16_t adxl355_spi_transfer(uint8_t * rbuffer, uint32_t rlen)
00080 {
00081     uint16_t ads_spi_transfer_error = 0u;
00082     uint8_t  ads_spi_transfer_data[MAX_LENGTH_SPI_TRANSFER];
00083     uint8_t  ads_spi_transfer_index;
00084     
00085     if(rlen > MAX_LENGTH_SPI_TRANSFER) 
00086     {
00087         ads_spi_transfer_error = (uint16_t)__LINE__;// TROPPI BYTE DA INVIARE !!!
00088     } 
00089     else 
00090     {
00091         memcpy(ads_spi_transfer_data, rbuffer, rlen);
00092         spiADXL355cs = 0;
00093                 
00094         for(ads_spi_transfer_index = 0; ads_spi_transfer_index < rlen; ads_spi_transfer_index++)
00095         {
00096             rbuffer[ads_spi_transfer_index] = spiHandler.write(ads_spi_transfer_data[ads_spi_transfer_index]);
00097         }
00098                 
00099         spiADXL355cs = 1;     
00100     }
00101 
00102     return ads_spi_transfer_error;
00103 };
00104 
00105 
00106 /* Funzione di salvataggio su SD Card */
00107 /*void save_data_SD_card(uint8_t* data2save, uint16_t length)
00108 {
00109 
00110 }*/
00111 
00112 
00113 
00114 
00115