[module] High Speed Logger overrun protection

This commit is contained in:
Christophe De Wagter
2013-03-05 22:52:47 +01:00
parent b2e56ff1be
commit 5171ca27c1
@@ -26,10 +26,10 @@
#include "mcu_periph/spi.h"
struct high_speed_logger_spi_link_data high_speed_logger_spi_link_data;
uint16_t testData = 1234;
struct spi_transaction high_speed_logger_spi_link_transaction;
static volatile bool_t high_speed_logger_spi_link_ready = TRUE;
static void high_speed_logger_spi_link_trans_cb( struct spi_transaction *trans );
void high_speed_logger_spi_link_init(void) {
@@ -52,22 +52,27 @@ void high_speed_logger_spi_link_init(void) {
void high_speed_logger_spi_link_periodic(void)
{
high_speed_logger_spi_link_data.gyro_p = imu.gyro_unscaled.p;
high_speed_logger_spi_link_data.gyro_q = imu.gyro_unscaled.q;
high_speed_logger_spi_link_data.gyro_r = imu.gyro_unscaled.r;
high_speed_logger_spi_link_data.acc_x = imu.accel_unscaled.x;
high_speed_logger_spi_link_data.acc_y = imu.accel_unscaled.y;
high_speed_logger_spi_link_data.acc_z = imu.accel_unscaled.z;
high_speed_logger_spi_link_data.mag_x = imu.mag_unscaled.x;
high_speed_logger_spi_link_data.mag_y = imu.mag_unscaled.x;
high_speed_logger_spi_link_data.mag_z = imu.mag_unscaled.x;
if (high_speed_logger_spi_link_ready)
{
high_speed_logger_spi_link_ready = FALSE;
high_speed_logger_spi_link_data.gyro_p = imu.gyro_unscaled.p;
high_speed_logger_spi_link_data.gyro_q = imu.gyro_unscaled.q;
high_speed_logger_spi_link_data.gyro_r = imu.gyro_unscaled.r;
high_speed_logger_spi_link_data.acc_x = imu.accel_unscaled.x;
high_speed_logger_spi_link_data.acc_y = imu.accel_unscaled.y;
high_speed_logger_spi_link_data.acc_z = imu.accel_unscaled.z;
high_speed_logger_spi_link_data.mag_x = imu.mag_unscaled.x;
high_speed_logger_spi_link_data.mag_y = imu.mag_unscaled.x;
high_speed_logger_spi_link_data.mag_z = imu.mag_unscaled.x;
spi_submit(&(HIGH_SPEED_LOGGER_SPI_LINK_DEVICE), &high_speed_logger_spi_link_transaction);
spi_submit(&(HIGH_SPEED_LOGGER_SPI_LINK_DEVICE), &high_speed_logger_spi_link_transaction);
}
high_speed_logger_spi_link_data.id++;
}
static void high_speed_logger_spi_link_trans_cb( struct spi_transaction *trans ) {
high_speed_logger_spi_link_ready = TRUE;
}