Skip to content

Commit d24ae5d

Browse files
Small changes
1 parent e2d9830 commit d24ae5d

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

main/system/data_fast.c

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,10 @@ static esp_err_t collect_err(biodyn_timesync_err_t err, const char *msg, esp_err
4040
void 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

Comments
 (0)