diff options
Diffstat (limited to 'apps/accelerometer-test/app.c')
-rw-r--r-- | apps/accelerometer-test/app.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/apps/accelerometer-test/app.c b/apps/accelerometer-test/app.c index 1a3acafa..a52fbbfd 100644 --- a/apps/accelerometer-test/app.c +++ b/apps/accelerometer-test/app.c @@ -16,18 +16,13 @@ static void cb_alarm_pressed(void) { uint8_t interrupts = 0; uint8_t last_interrupts = 0; -uint8_t ticks = 0; +bool tick = false; char buf[13] = {0}; static void cb_tick(void) { - watch_clear_indicator(WATCH_INDICATOR_SIGNAL); if (!lis2dw_have_new_data()) return; - watch_set_indicator(WATCH_INDICATOR_SIGNAL); - lis2dw_fifo_t fifo; - bool overrun = lis2dw_read_fifo(&fifo); - printf("FIFO captured %d readings.\n", fifo.count); - if (overrun) printf("\tThere was an overrun!\n\n"); + tick = true; } void app_init(void) { @@ -41,10 +36,10 @@ void app_init(void) { watch_enable_i2c(); lis2dw_begin(); - lis2dw_set_low_power_mode(LIS2DW_LP_MODE_2); // lowest power 14-bit mode, 25 Hz is 3.5 µA @ 1.8V w/ low noise, 3µA without - lis2dw_set_low_noise_mode(true); // consumes a little more power - lis2dw_set_range(LIS2DW_CTRL6_VAL_RANGE_4G); - lis2dw_set_data_rate(LIS2DW_DATA_RATE_25_HZ); // is this enough for training? + lis2dw_set_data_rate(LIS2DW_DATA_RATE_25_HZ); + lis2dw_set_range(LIS2DW_RANGE_4_G); + lis2dw_set_low_noise_mode(true); + lis2dw_enable_fifo(); lis2dw_enable_fifo(); @@ -64,8 +59,14 @@ void app_wake_from_standby(void) { } bool app_loop(void) { - // TODO: interrupt configuration for LIS2DW - watch_display_string(buf, 0); + if (tick) { + tick = false; + lis2dw_fifo_t fifo; + lis2dw_read_fifo(&fifo); + for(int i = 0; i < fifo.count; i++) { + printf("%d, %d, %d, %d, %d\n", fifo.readings[i].x, fifo.readings[i].y, fifo.readings[i].z, i, fifo.count); + } + } return true; } |