【类 型】:test

【原  因】:loop函数 逐行检测运行时长
【过  程】:
【影  响】:

# 类型 包含:
# feat:新功能(feature)
# fix:修补bug
# docs:文档(documentation)
# style: 格式(不影响代码运行的变动)
# refactor:重构(即不是新增功能,也不是修改bug的代码变动)
# test:增加测试
# chore:构建过程或辅助工具的变动
This commit is contained in:
szdot 2025-05-24 16:06:47 +08:00
parent db87abadb5
commit 3445924e10

View File

@ -408,19 +408,46 @@ void set_locked(bool locked)
// 在核心1上执行重要的延迟低的
void loop()
{
_tm_core1 = millis();
// sercomm.getcommand(); // 得到控制命令
button_checktop.tick(); // 按钮
button_down.tick(); // 按钮
button_up.tick(); // 按钮
button_test.tick();
motocontrol.setweight(pullweight); // 告诉电机拉的重量
motocontrol.update(); // 电机控制
unsigned long _tm_core1 = millis();
unsigned long _tm_segment = _tm_core1;
showledidel(); // 显示LED灯光
checkstatus(); // 检测状态,执行一些和状态有关的功能
// showinfo(); // 显示一些调试用信息-
// 到顶后延迟关闭动力电和舵机
// 按钮检测
button_checktop.tick();
button_down.tick();
button_up.tick();
button_test.tick();
unsigned long _elapsed = millis() - _tm_segment;
if (_elapsed > 2)
addLogMessage("core1 timeout: buttons.tick() " + String(_elapsed));
_tm_segment = millis();
// 设置电机拉力
motocontrol.setweight(pullweight);
motocontrol.update();
_elapsed = millis() - _tm_segment;
if (_elapsed > 2)
addLogMessage("core1 timeout: motocontrol " + String(_elapsed));
_tm_segment = millis();
// 显示LED灯光
showledidel();
_elapsed = millis() - _tm_segment;
if (_elapsed > 2)
addLogMessage("core1 timeout: showledidel() " + String(_elapsed));
_tm_segment = millis();
// 检查状态
checkstatus();
_elapsed = millis() - _tm_segment;
if (_elapsed > 2)
addLogMessage("core1 timeout: checkstatus() " + String(_elapsed));
_tm_segment = millis();
// 处理到顶延时逻辑
if (_bengstop)
{
if ((initstatus == IS_OK) && (pullweight > TM_INSTORE_DELAY_WEIGHT))
@ -440,16 +467,35 @@ void loop()
}
}
}
check_tare(); // 检查看是否需要校准称重
checkinited(); // 检测执行初始化工作
_elapsed = millis() - _tm_segment;
if (_elapsed > 2)
addLogMessage("core1 timeout: _bengstop logic " + String(_elapsed));
_tm_segment = millis();
// 校准检测
check_tare();
_elapsed = millis() - _tm_segment;
if (_elapsed > 2)
addLogMessage("core1 timeout: check_tare() " + String(_elapsed));
_tm_segment = millis();
// 初始化检测
checkinited();
_elapsed = millis() - _tm_segment;
if (_elapsed > 2)
addLogMessage("core1 timeout: checkinited() " + String(_elapsed));
_tm_segment = millis();
delay(1);
_looptm_core1 = millis() - _tm_core1;
// 如果循环时间超过1000ms,则打印错误日志
unsigned long _looptm_core1 = millis() - _tm_core1;
if (_looptm_core1 > 10)
{
// ESP_LOGE(MOUDLENAME, "main loop time out %d ms", _looptm_core1);
addLogMessage("core1 timeout: " + String(_looptm_core1));
addLogMessage("core1 timeout: loop total " + String(_looptm_core1));
}
}
// 在核心0上执行耗时长的低优先级的