diff options
| author | Joey Castillo <joeycastillo@utexas.edu> | 2022-02-19 14:22:23 -0500 | 
|---|---|---|
| committer | Joey Castillo <joeycastillo@utexas.edu> | 2022-02-19 14:22:23 -0500 | 
| commit | 54f1873785e218c72c131623ecc93df1f71e08f7 (patch) | |
| tree | f08b1d5487dc07c22a8bff22a98964113917318a | |
| parent | 09f79f782faaf2383fb7eeb1845701675a4439c8 (diff) | |
| download | Sensor-Watch-54f1873785e218c72c131623ecc93df1f71e08f7.tar.gz Sensor-Watch-54f1873785e218c72c131623ecc93df1f71e08f7.tar.bz2 Sensor-Watch-54f1873785e218c72c131623ecc93df1f71e08f7.zip  | |
documentation and such
3 files changed, 24 insertions, 14 deletions
diff --git a/movement/watch_faces/sensor/accelerometer_data_acquisition_face.c b/movement/watch_faces/sensor/accelerometer_data_acquisition_face.c index ea50ad27..cf441031 100644 --- a/movement/watch_faces/sensor/accelerometer_data_acquisition_face.c +++ b/movement/watch_faces/sensor/accelerometer_data_acquisition_face.c @@ -25,6 +25,7 @@  #include <stdlib.h>  #include <string.h>  #include "accelerometer_data_acquisition_face.h" +#include "lis2dw.h"  static const char activity_types[][3] = {      "ID",   // Idle @@ -61,7 +62,6 @@ void accelerometer_data_acquisition_face_setup(movement_settings_t *settings, ui          state->beep_with_countdown = true;          state->countdown_length = 10;      } -    // Do any pin or peripheral setup here; this will be called whenever the watch wakes from deep sleep.  }  void accelerometer_data_acquisition_face_activate(movement_settings_t *settings, void *context) { diff --git a/movement/watch_faces/sensor/accelerometer_data_acquisition_face.h b/movement/watch_faces/sensor/accelerometer_data_acquisition_face.h index b3fdbbd7..e29b9909 100644 --- a/movement/watch_faces/sensor/accelerometer_data_acquisition_face.h +++ b/movement/watch_faces/sensor/accelerometer_data_acquisition_face.h @@ -35,28 +35,28 @@  typedef union {      struct {          union { -            int16_t record_type : 2; -            int16_t range : 2; -            int16_t temperature : 12; +            int16_t record_type : 2;    // see above, helps us identify record types when reading back +            int16_t range : 2;          // accelerometer range (see lis2dw_range_t) +            int16_t temperature : 12;   // raw value from the temperature sensor          } info; -        int8_t char1 : 8; -        int8_t char2 : 8; -        int32_t timestamp : 32; +        int8_t char1 : 8;               // First character of the activity type +        int8_t char2 : 8;               // Second character of the activity type +        int32_t timestamp : 32;         // UNIX timestamp for the measurement      } header;      struct {          union { -            int16_t mode : 2; -            int16_t accel : 14; +            int16_t record_type : 2;    // duplicate; this is the same field as info above +            int16_t accel : 14;         // X acceleration value, raw          } x;          union { -            int16_t lpmode : 2; -            int16_t accel : 14; +            int16_t lpmode : 2;         // low power mode (see lis2dw_low_power_mode_t) +            int16_t accel : 14;         // Y acceleration value, raw          } y;          union { -            int16_t filter : 2; -            int16_t accel : 14; +            int16_t filter : 2;         // bandwidth filtering selection (see lis2dw_bandwidth_filtering_mode_t) +            int16_t accel : 14;         // Z acceleration value, raw          } z; -        int32_t counter : 16; +        int32_t counter : 16;           // number of seconds since timestamp in header      } data;      uint64_t value;  } accelerometer_data_acquisition_record_t; diff --git a/watch-library/shared/driver/lis2dw.c b/watch-library/shared/driver/lis2dw.c index 0b788fca..744a686b 100644 --- a/watch-library/shared/driver/lis2dw.c +++ b/watch-library/shared/driver/lis2dw.c @@ -34,6 +34,16 @@ bool lis2dw_begin(void) {      // Enable block data update (output registers not updated until MSB and LSB have been read) and address autoincrement      watch_i2c_write8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL2, LIS2DW_CTRL2_VAL_BDU | LIS2DW_CTRL2_VAL_IF_ADD_INC); +    // Parameters at startup:  +    //  * Data rate 0 (powered down) +    //  * Low power mode enabled +    //  * LP mode 1 (12-bit) +    //  * Bandwidth filtering ODR/2 +    //  * Low pass filter path +    //  * ±2g range +    //  * Low noise mode off +    //  * FIFO disabled +      return true;  }  | 
