documentation and such
This commit is contained in:
		
							parent
							
								
									09f79f782f
								
							
						
					
					
						commit
						54f1873785
					
				| @ -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) { | ||||
|  | ||||
| @ -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; | ||||
|  | ||||
| @ -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; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user