summaryrefslogtreecommitdiffstats
path: root/apps/accelerometer-test/app.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/accelerometer-test/app.c')
-rw-r--r--apps/accelerometer-test/app.c27
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;
}