diff --git a/legacy/watch_faces/sensor/accelerometer_data_acquisition_face.c b/legacy/watch_faces/sensor/accelerometer_data_acquisition_face.c index cb49e018..72584749 100644 --- a/legacy/watch_faces/sensor/accelerometer_data_acquisition_face.c +++ b/legacy/watch_faces/sensor/accelerometer_data_acquisition_face.c @@ -448,13 +448,13 @@ static void start_reading(accelerometer_data_acquisition_state_t *state) { state->records[state->pos++] = record; lis2dw_fifo_t fifo; - lis2dw_read_fifo(&fifo, LIS2DW_FIFO_TIMEOUT); // dump the fifo, this starts a fresh round of data in continue_reading + lis2dw_read_fifo(&fifo); // dump the fifo, this starts a fresh round of data in continue_reading } static void continue_reading(accelerometer_data_acquisition_state_t *state) { printf("Continue reading\n"); lis2dw_fifo_t fifo; - lis2dw_read_fifo(&fifo, LIS2DW_FIFO_TIMEOUT); + lis2dw_read_fifo(&fifo); fifo.count = min(fifo.count, 25); // hacky, but we need a consistent data rate; if we got a 26th data point, chuck it. uint8_t offset = 4 * (25 - fifo.count); // also hacky: we're sometimes short at the start. align to beginning of next second. diff --git a/watch-faces/sensor/lis2dw_monitor_face.c b/watch-faces/sensor/lis2dw_monitor_face.c index 8afb7d3e..a717fe46 100644 --- a/watch-faces/sensor/lis2dw_monitor_face.c +++ b/watch-faces/sensor/lis2dw_monitor_face.c @@ -420,7 +420,7 @@ static void _monitor_update(lis2dw_monitor_state_t *state) lis2dw_fifo_t fifo; float x = 0, y = 0, z = 0; - lis2dw_read_fifo(&fifo, LIS2DW_FIFO_TIMEOUT / DISPLAY_FREQUENCY); + lis2dw_read_fifo(&fifo); if (fifo.count == 0) { return; } diff --git a/watch-library/shared/driver/lis2dw.c b/watch-library/shared/driver/lis2dw.c index ec82cfa5..8bde1e42 100644 --- a/watch-library/shared/driver/lis2dw.c +++ b/watch-library/shared/driver/lis2dw.c @@ -277,8 +277,7 @@ inline void lis2dw_disable_fifo(void) { #endif } -bool lis2dw_read_fifo(lis2dw_fifo_t *fifo_data, uint32_t timeout) { - // timeout is in terms of 1/RTC_CNT_HZ seconds (likely 128 timeouts is one second) +bool lis2dw_read_fifo(lis2dw_fifo_t *fifo_data) { #ifdef I2C_SERCOM uint8_t temp = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_FIFO_SAMPLE); bool overrun = !!(temp & LIS2DW_FIFO_SAMPLE_OVERRUN); @@ -291,7 +290,6 @@ bool lis2dw_read_fifo(lis2dw_fifo_t *fifo_data, uint32_t timeout) { fifo_data->count = 32; } - (void) timeout; /* unused now; kept in the signature for legacy callers */ /* Read the whole FIFO in one burst. With address auto-increment (IF_ADD_INC) the pointer walks OUT_X_L..OUT_Z_H and rolls over into the next FIFO slot, so count*6 bytes returns the samples back-to-back. On this little-endian @@ -305,7 +303,6 @@ bool lis2dw_read_fifo(lis2dw_fifo_t *fifo_data, uint32_t timeout) { return overrun; #else (void) fifo_data; - (void) timeout; return false; #endif } diff --git a/watch-library/shared/driver/lis2dw.h b/watch-library/shared/driver/lis2dw.h index fc5947e0..f7b0a801 100644 --- a/watch-library/shared/driver/lis2dw.h +++ b/watch-library/shared/driver/lis2dw.h @@ -301,8 +301,6 @@ typedef enum { #define LIS2DW_CTRL7_VAL_HP_REF_MODE 0b00000010 #define LIS2DW_CTRL7_VAL_LPASS_ON6D 0b00000001 -#define LIS2DW_FIFO_TIMEOUT 100 // timeout is in terms of 1/RTC_CNT_HZ seconds (likely 128 timeouts is one second) - bool lis2dw_begin(void); uint8_t lis2dw_get_device_id(void); @@ -347,7 +345,7 @@ void lis2dw_enable_fifo(void); void lis2dw_disable_fifo(void); -bool lis2dw_read_fifo(lis2dw_fifo_t *fifo_data, uint32_t timeout); +bool lis2dw_read_fifo(lis2dw_fifo_t *fifo_data); void lis2dw_clear_fifo(void);