Tick rate (Hz)范围0-1000

ddddddd6
Posts: 2
Joined: Mon Mar 20, 2023 6:50 am

Tick rate (Hz)范围0-1000

Postby ddddddd6 » Tue May 30, 2023 8:42 am

在menuconfig → Component config → FreeRTOS中
Tick rate (Hz)设置范围 0-1000
如果超出这个范围,比如设置成10000,有没有方法绕过配置文件,手动设置成10000?

yake827
Posts: 43
Joined: Mon Aug 09, 2021 7:51 am

Re: Tick rate (Hz)范围0-1000

Postby yake827 » Wed May 31, 2023 9:43 am

你想调节成 10000,我估计你是想实现 us 级的延时或者定时,这块建议你使用 ets_delay_us 和 esp_timer。
至于为什么不能调节,这部分涉及到 system tick 的实现,最小只能到1000,也就是 1ms,而且这个时间也不会精确,不建议做精确时间

ddddddd6
Posts: 2
Joined: Mon Mar 20, 2023 6:50 am

Re: Tick rate (Hz)范围0-1000

Postby ddddddd6 » Sun Jun 04, 2023 8:42 am

根据system tick 的实现这个提示,把滴答定时器计数值再缩小10倍,_xt_tick_divisor = _xt_tick_divisor / 10;修改后Tick rate (Hz)范围0-1000,对应时间0.1ms-100ms 。

esp-idf-v4.4.1 ,测试了一下 修改后对ESP32可以生效,对ESP32S3不能生效。


void vPortSetupTimer(void)
{
/* Init the tick divisor value */
_xt_tick_divisor_init();

_frxt_tick_timer_init();
}


void _xt_tick_divisor_init(void)
{
_xt_tick_divisor = esp_clk_cpu_freq() / XT_TICK_PER_SEC;

_xt_tick_divisor = _xt_tick_divisor / 10;//滴答定时器计数值再缩小10倍
}


esp-idf-v4.4.1 ,对与ESP32S3,ESP32C3

需要修改void vPortSetupTimer(void)函数,中:
systimer_hal_set_alarm_period(&systimer_hal, alarm_id, 1000000UL / CONFIG_FREERTOS_HZ);
systimer_hal_counter_value_advance(&systimer_hal, SYSTIMER_LL_COUNTER_OS_TICK, 1000000UL / CONFIG_FREERTOS_HZ / 2);
改为:
systimer_hal_set_alarm_period(&systimer_hal, alarm_id, 1000000UL / CONFIG_FREERTOS_HZ/10);
systimer_hal_counter_value_advance(&systimer_hal, SYSTIMER_LL_COUNTER_OS_TICK, 1000000UL / CONFIG_FREERTOS_HZ/10 / 2);

arduino 开发环境中的C库文件都是封装好的,对于ESP32S3 ESP32C3是没有文件可修改的,ESP32需要修改的变量_xt_tick_divisor,不需要在源文件中修改,可以在setup函数修改。

extern unsigned _xt_tick_divisor;
void setup() {
_xt_tick_divisor = _xt_tick_divisor / 10;

}
Last edited by ddddddd6 on Mon Oct 09, 2023 8:51 am, edited 1 time in total.

ESP_Yake
Posts: 109
Joined: Mon Mar 06, 2017 12:23 pm

Re: Tick rate (Hz)范围0-1000

Postby ESP_Yake » Tue Jun 06, 2023 3:49 am

改 Tick rate 的意义是什么?这样除了增大系统开销,我看不到任何优势, FreeRTOS 官方给的 tick rate 建议值是100

Who is online

Users browsing this forum: No registered users and 180 guests