Working version. ADXL355 data saved to microSD.
utility.cpp
- Committer:
- DUR
- Date:
- 2017-09-29
- Revision:
- 0:e2579e8d9b13
File content as of revision 0:e2579e8d9b13:
/*****************************************************************************
* 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)
{
}*/