新增FreeRTOS软件定时器测试部分代码,修改定时器栈空间大小

This commit is contained in:
ipason 2025-05-06 10:42:49 +08:00
parent 25c1e62097
commit f451df004b
4 changed files with 64 additions and 4 deletions

View File

@ -95,3 +95,36 @@ char* get_time_str(void)
return strftime_buf;
}
#if SYSTEM_TIME_TEST_ENABLE
static void soft_timer_callback_func(void)
{
//printf("soft timer callback\n");
/* 向SD卡写入时间戳 */
WRITE_LOG_TO_SD("soft timer callback");
}
/**
* @brief
*
* 使FreeRTOS软件定时器可以保证气阀开启周期为 0.2s 0.2s后再关闭
*
* @note cpu利用率拉升至100%0.2s的定时器1ms
* 使GPIO输出模拟气阀切换SD卡中写入当前时间戳
*
* @param[in] arg not used
*/
void soft_timer_task(void* arg)
{
/* 定时器初始化 */
TimerHandle_t soft_timer = xTimerCreate("soft_timer_cb", pdMS_TO_TICKS(10), pdTRUE, NULL, &soft_timer_callback_func);
/* 立即启动定时器 */
xTimerStart(soft_timer, 0);
while (1)
{
/* 延时1s */
vTaskDelay(1000);
}
}
#endif

View File

@ -19,12 +19,34 @@ extern "C" {
#endif
/* 每隔多久进行一次时间数据更新*/
#define SYSTEM_TIME_UPDATE_INTERVAL_SEC 1
#define SYSTEM_TIME_UPDATE_INTERVAL_SEC (1)
/* 选择是否进行软件定时器精度测试 */
#define SYSTEM_TIME_TEST_ENABLE (0)
/*时间同步任务*/
/**
* @brief
*
* 使
*
* @param[in] arg not used
*/
void time_synic_task(void *arg);
#if SYSTEM_TIME_TEST_ENABLE
/**
* @brief
*
* 使FreeRTOS软件定时器可以保证气阀开启周期为 0.2s 0.2s后再关闭
*
* @note cpu利用率拉升至100%0.2s的定时器1ms
* 使GPIO输出模拟气阀切换SD卡中写入当前时间戳
*
* @param[in] arg not used
*/
void soft_timer_task(void* arg);
#endif
/*获取当前时间*/
char* get_time_str(void);

View File

@ -147,6 +147,11 @@ extern "C" void app_main(void)
vTaskDelay(PROGRESS_DELAY_TIME/portTICK_PERIOD_MS);
#endif
#if SYSTEM_TIME_TEST_ENABLE
/* 创建软件定时器任务 */
xTaskCreate(soft_timer_task, "soft_timer_task", 1024, NULL, 2, NULL);
#endif
lv_scr_load_anim(ui_pageHome, LV_SCR_LOAD_ANIM_OUT_TOP, 800, 0, false);
/*电源开启*/

View File

@ -1343,7 +1343,7 @@ CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc"
CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y
CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=16416
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1
@ -2531,7 +2531,7 @@ CONFIG_WPA_MBEDTLS_TLS_CLIENT=y
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
CONFIG_TIMER_TASK_PRIORITY=1
CONFIG_TIMER_TASK_STACK_DEPTH=2048
CONFIG_TIMER_TASK_STACK_DEPTH=16416
CONFIG_TIMER_QUEUE_LENGTH=10
# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
# CONFIG_HAL_ASSERTION_SILIENT is not set