Skip to content

Commit b35982d

Browse files
committed
fix(touch): fixed touch interval freq unit convert issue
1 parent 81ee3bb commit b35982d

File tree

3 files changed

+3
-6
lines changed

3 files changed

+3
-6
lines changed

components/esp_driver_touch_sens/hw_ver1/touch_version_specific.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,10 @@ static esp_err_t s_touch_convert_to_hal_config(touch_sensor_handle_t sens_handle
168168
}
169169

170170
uint32_t src_freq_mhz = sens_handle->src_freq_hz / 1000000;
171-
uint32_t interval_freq_mhz = sens_handle->interval_freq_hz / 1000000;
172171
hal_cfg->power_on_wait_ticks = (uint32_t)sens_cfg->power_on_wait_us * src_freq_mhz;
173172
hal_cfg->power_on_wait_ticks = hal_cfg->power_on_wait_ticks > TOUCH_LL_PAD_MEASURE_WAIT_MAX ?
174173
TOUCH_LL_PAD_MEASURE_WAIT_MAX : hal_cfg->power_on_wait_ticks;
175-
hal_cfg->meas_interval_ticks = (uint32_t)(sens_cfg->meas_interval_us * interval_freq_mhz);
174+
hal_cfg->meas_interval_ticks = (uint32_t)(sens_cfg->meas_interval_us * sens_handle->interval_freq_hz / 1000000);
176175

177176
sens_handle->is_below_trig = sens_cfg->intr_trig_mode == TOUCH_INTR_TRIG_ON_BELOW_THRESH;
178177
hal_cfg->intr_trig_mode = sens_cfg->intr_trig_mode;

components/esp_driver_touch_sens/hw_ver2/touch_version_specific.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,10 @@ static esp_err_t s_touch_convert_to_hal_config(touch_sensor_handle_t sens_handle
173173
}
174174

175175
uint32_t src_freq_mhz = sens_handle->src_freq_hz / 1000000;
176-
uint32_t interval_freq_mhz = sens_handle->interval_freq_hz / 1000000;
177176
hal_cfg->power_on_wait_ticks = (uint32_t)sens_cfg->power_on_wait_us * src_freq_mhz;
178177
hal_cfg->power_on_wait_ticks = hal_cfg->power_on_wait_ticks > TOUCH_LL_PAD_MEASURE_WAIT_MAX ?
179178
TOUCH_LL_PAD_MEASURE_WAIT_MAX : hal_cfg->power_on_wait_ticks;
180-
hal_cfg->meas_interval_ticks = (uint32_t)(sens_cfg->meas_interval_us * interval_freq_mhz);
179+
hal_cfg->meas_interval_ticks = (uint32_t)(sens_cfg->meas_interval_us * sens_handle->interval_freq_hz / 1000000);
181180
hal_cfg->timeout_ticks = (uint32_t)sens_cfg->max_meas_time_us * src_freq_mhz;
182181
ESP_RETURN_ON_FALSE(hal_cfg->timeout_ticks <= TOUCH_LL_TIMEOUT_MAX, ESP_ERR_INVALID_ARG, TAG,
183182
"max_meas_time_ms should within %"PRIu32" ms", TOUCH_LL_TIMEOUT_MAX / (sens_handle->src_freq_hz / 1000));

components/esp_driver_touch_sens/hw_ver3/touch_version_specific.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,10 @@ static esp_err_t s_touch_convert_to_hal_config(touch_sensor_handle_t sens_handle
153153

154154
uint32_t src_freq_hz = sens_handle->src_freq_hz;
155155
uint32_t src_freq_mhz = src_freq_hz / 1000000;
156-
uint32_t interval_freq_mhz = sens_handle->interval_freq_hz / 1000000;
157156
hal_cfg->power_on_wait_ticks = (uint32_t)sens_cfg->power_on_wait_us * src_freq_mhz;
158157
hal_cfg->power_on_wait_ticks = hal_cfg->power_on_wait_ticks > TOUCH_LL_PAD_MEASURE_WAIT_MAX ?
159158
TOUCH_LL_PAD_MEASURE_WAIT_MAX : hal_cfg->power_on_wait_ticks;
160-
hal_cfg->meas_interval_ticks = (uint32_t)(sens_cfg->meas_interval_us * interval_freq_mhz);
159+
hal_cfg->meas_interval_ticks = (uint32_t)(sens_cfg->meas_interval_us * sens_handle->interval_freq_hz / 1000000);
161160
hal_cfg->timeout_ticks = (uint32_t)sens_cfg->max_meas_time_us * src_freq_mhz;
162161
ESP_RETURN_ON_FALSE(hal_cfg->timeout_ticks <= TOUCH_LL_TIMEOUT_MAX, ESP_ERR_INVALID_ARG, TAG,
163162
"max_meas_time_ms should within %"PRIu32, TOUCH_LL_TIMEOUT_MAX / src_freq_mhz);

0 commit comments

Comments
 (0)