如何将代码修改为温度每三秒上升一度,持续9秒时进行温升告警
时间: 2024-03-02 19:50:39 浏览: 108
人教版三年级数学上册第一单元 第1课时 秒的认识(授课课件).pptx
要将代码修改为温度每三秒上升一度,持续9秒时进行温升告警,可以按照以下步骤进行修改:
1. 将 tick2 的时间判断条件改为温度上升一度的时间判断条件,即:bms_get_time_interval(tick2, OSTimeGet()) > 3000/1。
2. 将 old_temp 的初始值改为当前温度,即:old_temp = now_temp;
3. 将温度上升的判断条件改为温度上升了三度,即:now_temp - old_temp >= 3。
4. 将触发告警的判断条件改为温度上升了九度,即:now_temp - old_temp >= 9。
下面是修改后的代码:
```
void bms_temp_rise_diag(void) {
static INT8U temp_flag = FALSE;
static INT16U old_temp = 0;
static INT32U tick = 0, tick2 = 0;
INT8U flag = 0;
INT16U now_temp = 0;
if (temp_flag == FALSE) {
tick = OSTimeGet();
tick2 = OSTimeGet();
old_temp = now_temp = bms_get_max_temp();
}
if (bms_get_time_interval(tick2, OSTimeGet()) > 3000/1 || temp_flag == FALSE) {
if (bms_get_time_interval(tick, OSTimeGet()) > 3000) {
now_temp += 3;
tick = OSTimeGet();
}
tick2 = OSTimeGet();
if (now_temp - old_temp >= 3) {
flag = TRUE;
}
old_temp = now_temp;
temp_flag = TRUE;
}
if (flag == TRUE && now_temp - old_temp >= 9) {
if (AlarmLevel2 != bms_get_tr()) {
save_event_log(TR_ALARM_TYPE, 0xFF);
}
bms_set_tr(AlarmLevel2);
}
else {
bms_set_tr(AlarmNone);
}
if (bms_get_rel_flag() == TRUE) {
bms_set_tr(AlarmNone);
temp_flag = FALSE;
}
}
```
注意,这只是一种修改方法,具体的实现方式可能还需要根据实际情况进行调整。
阅读全文