@@ -40,9 +40,10 @@ static esp_err_t collect_err(biodyn_timesync_err_t err, const char *msg, esp_err
4040void read_task (void * usr_data )
4141{
4242 TickType_t last_wake_time = xTaskGetTickCount ();
43- const TickType_t period = pdMS_TO_TICKS (15 );
43+ // This is the fastest we can go without gptimer or increasing tick rate
44+ const TickType_t period = pdMS_TO_TICKS (10 );
4445
45- while ( 1 )
46+ for (;; )
4647 {
4748 data_fast_read ();
4849 vTaskDelayUntil (& last_wake_time , period );
@@ -94,15 +95,19 @@ void data_fast_read()
9495{
9596 ts_ticker_t read_ticker = biodyn_time_sync_get_ticker ();
9697
97- // Take mutex
98+ // Read local before taking mutex
99+ imu_motion_data data ;
100+ biodyn_imu_icm20948_read_accel_gyro_mag (& data );
101+
102+ // Take mutex
98103 if (xSemaphoreTake (data_fast .data_mutex , portMAX_DELAY ))
99104 {
100105 data_fast .data_ptr += 1 ;
101106 data_fast .data_ptr %= data_fast .data_cnt ;
102107 timed_read * datapoint = & data_fast .data [data_fast .data_ptr ];
103108 datapoint -> ticker = read_ticker ;
109+ datapoint -> data = data ;
104110 datapoint -> emg = 0 ;
105- biodyn_imu_icm20948_read_accel_gyro_mag (& datapoint -> data );
106111 xSemaphoreGive (data_fast .data_mutex ); // Give mutex
107112 }
108113}
@@ -118,8 +123,8 @@ void ble_data_fast_packed(uint16_t *size, void *out)
118123 memcpy (out + (old_size * sizeof (timed_read )), p , current_size * sizeof (timed_read ));
119124 memcpy (out , p , old_size * sizeof (timed_read ));
120125 * size = IMU_DATA_CNT * sizeof (timed_read );
121- timed_read * latest = & ((timed_read * )out )[IMU_DATA_CNT - 1 ];
122- ESP_LOGI (TAG , "x: %.2f, y: %.2f, z: %.2f at %lld" , latest -> data .accel_x , latest -> data .accel_y , latest -> data .accel_z , latest -> ticker );
126+ // timed_read *latest = &((timed_read *)out)[IMU_DATA_CNT - 1];
127+ // ESP_LOGI(TAG, "x: %.2f, y: %.2f, z: %.2f at %lld", latest->data.accel_x, latest->data.accel_y, latest->data.accel_z, latest->ticker);
123128 xSemaphoreGive (data_fast .data_mutex ); // Give mutex
124129 }
125130}
0 commit comments