huyongji1.1-system/App/SaveTime/Save_Time.c

117 lines
7.6 KiB
C
Raw Normal View History

2025-04-16 09:58:09 +08:00
#include "Save_Time.h"
void Time_Save(void)
{
// 保存直排模式参数
Inf_AT24C02_WriteBytes(TIME_ADDR_DIRECT_PUMP_ON, (uint8_t*)&DIRECT_HIGH_PUMP_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_DIRECT_PUMP_OFF, (uint8_t*)&DIRECT_HIGH_PUMP_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_DIRECT_FAN_ON, (uint8_t*)&DIRECT_HIGH_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_DIRECT_FAN_OFF, (uint8_t*)&DIRECT_HIGH_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_DIRECT_LOW_FAN_ON, (uint8_t*)&DIRECT_LOW_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_DIRECT_LOW_FAN_OFF, (uint8_t*)&DIRECT_LOW_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_DIRECT_FIRST_LOW_ON, (uint8_t*)&DIRECT_FIRST_LOW_FAN_ON, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_DIRECT_FIRST_LOW_OFF, (uint8_t*)&DIRECT_FIRST_LOW_FAN_OFF, sizeof(uint32_t));
// 保存冲厕模式参数
Inf_AT24C02_WriteBytes(TIME_ADDR_FLUSH_PUMP_ON, (uint8_t*)&FLUSH_HIGH_PUMP_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_FLUSH_PUMP_OFF, (uint8_t*)&FLUSH_HIGH_PUMP_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_FLUSH_FAN_ON, (uint8_t*)&FLUSH_HIGH_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_FLUSH_FAN_OFF, (uint8_t*)&FLUSH_HIGH_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_FLUSH_LOW_FAN_ON, (uint8_t*)&FLUSH_LOW_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_FLUSH_LOW_FAN_OFF, (uint8_t*)&FLUSH_LOW_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_FLUSH_FIRST_LOW_ON, (uint8_t*)&FLUSH_FIRST_LOW_FAN_ON, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_FLUSH_FIRST_LOW_OFF, (uint8_t*)&FLUSH_FIRST_LOW_FAN_OFF, sizeof(uint32_t));
// 保存灌溉模式参数
Inf_AT24C02_WriteBytes(TIME_ADDR_IRRIG_PUMP_ON, (uint8_t*)&HIGH_LEVEL_PUMP_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_IRRIG_PUMP_OFF, (uint8_t*)&HIGH_LEVEL_PUMP_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_IRRIG_FAN_ON, (uint8_t*)&HIGH_LEVEL_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_IRRIG_FAN_OFF, (uint8_t*)&HIGH_LEVEL_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_IRRIG_LOW_FAN_ON, (uint8_t*)&LOW_LEVEL_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_IRRIG_LOW_FAN_OFF, (uint8_t*)&LOW_LEVEL_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_IRRIG_FIRST_LOW_ON, (uint8_t*)&FIRST_LOW_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_WriteBytes(TIME_ADDR_IRRIG_FIRST_LOW_OFF, (uint8_t*)&FIRST_LOW_FAN_OFF_TIME, sizeof(uint32_t));
}
void Time_Load(void)
{
// 读取直排模式参数
Inf_AT24C02_ReadBytes(TIME_ADDR_DIRECT_PUMP_ON, (uint8_t*)&DIRECT_HIGH_PUMP_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_DIRECT_PUMP_OFF, (uint8_t*)&DIRECT_HIGH_PUMP_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_DIRECT_FAN_ON, (uint8_t*)&DIRECT_HIGH_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_DIRECT_FAN_OFF, (uint8_t*)&DIRECT_HIGH_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_DIRECT_LOW_FAN_ON, (uint8_t*)&DIRECT_LOW_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_DIRECT_LOW_FAN_OFF, (uint8_t*)&DIRECT_LOW_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_DIRECT_FIRST_LOW_ON, (uint8_t*)&DIRECT_FIRST_LOW_FAN_ON, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_DIRECT_FIRST_LOW_OFF, (uint8_t*)&DIRECT_FIRST_LOW_FAN_OFF, sizeof(uint32_t));
// 读取冲厕模式参数
Inf_AT24C02_ReadBytes(TIME_ADDR_FLUSH_PUMP_ON, (uint8_t*)&FLUSH_HIGH_PUMP_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_FLUSH_PUMP_OFF, (uint8_t*)&FLUSH_HIGH_PUMP_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_FLUSH_FAN_ON, (uint8_t*)&FLUSH_HIGH_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_FLUSH_FAN_OFF, (uint8_t*)&FLUSH_HIGH_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_FLUSH_LOW_FAN_ON, (uint8_t*)&FLUSH_LOW_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_FLUSH_LOW_FAN_OFF, (uint8_t*)&FLUSH_LOW_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_FLUSH_FIRST_LOW_ON, (uint8_t*)&FLUSH_FIRST_LOW_FAN_ON, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_FLUSH_FIRST_LOW_OFF, (uint8_t*)&FLUSH_FIRST_LOW_FAN_OFF, sizeof(uint32_t));
// 读取灌溉模式参数
Inf_AT24C02_ReadBytes(TIME_ADDR_IRRIG_PUMP_ON, (uint8_t*)&HIGH_LEVEL_PUMP_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_IRRIG_PUMP_OFF, (uint8_t*)&HIGH_LEVEL_PUMP_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_IRRIG_FAN_ON, (uint8_t*)&HIGH_LEVEL_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_IRRIG_FAN_OFF, (uint8_t*)&HIGH_LEVEL_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_IRRIG_LOW_FAN_ON, (uint8_t*)&LOW_LEVEL_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_IRRIG_LOW_FAN_OFF, (uint8_t*)&LOW_LEVEL_FAN_OFF_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_IRRIG_FIRST_LOW_ON, (uint8_t*)&FIRST_LOW_FAN_ON_TIME, sizeof(uint32_t));
Inf_AT24C02_ReadBytes(TIME_ADDR_IRRIG_FIRST_LOW_OFF, (uint8_t*)&FIRST_LOW_FAN_OFF_TIME, sizeof(uint32_t));
2025-05-20 09:28:12 +08:00
// 检查值是否有效,如果无效则设置默认值
if(DIRECT_HIGH_PUMP_ON_TIME == 0xFFFFFFFF || DIRECT_HIGH_PUMP_ON_TIME == 0)
{
// 直排模式默认值
DIRECT_HIGH_PUMP_ON_TIME = 1; // 1分钟
DIRECT_HIGH_PUMP_OFF_TIME = 150; // 150分钟
DIRECT_HIGH_FAN_ON_TIME = 40; // 40分钟
DIRECT_HIGH_FAN_OFF_TIME = 2; // 2分钟
DIRECT_LOW_FAN_ON_TIME = 10; // 10分钟
DIRECT_LOW_FAN_OFF_TIME = 20; // 20分钟
DIRECT_FIRST_LOW_FAN_ON = 40; // 40分钟
DIRECT_FIRST_LOW_FAN_OFF = 2; // 2分钟
// 冲厕模式默认值
FLUSH_HIGH_PUMP_ON_TIME = 1; // 1分钟
FLUSH_HIGH_PUMP_OFF_TIME = 150; // 150分钟
FLUSH_HIGH_FAN_ON_TIME = 40; // 40分钟
FLUSH_HIGH_FAN_OFF_TIME = 2; // 2分钟
FLUSH_LOW_FAN_ON_TIME = 5; // 5分钟
FLUSH_LOW_FAN_OFF_TIME = 25; // 25分钟
FLUSH_FIRST_LOW_FAN_ON = 40; // 40分钟
FLUSH_FIRST_LOW_FAN_OFF = 2; // 2分钟
// 灌溉模式默认值
HIGH_LEVEL_PUMP_ON_TIME = 1; // 1分钟
HIGH_LEVEL_PUMP_OFF_TIME = 120; // 120分钟
HIGH_LEVEL_FAN_ON_TIME = 20; // 20分钟
HIGH_LEVEL_FAN_OFF_TIME = 5; // 5分钟
FIRST_LOW_FAN_ON_TIME = 10; // 10分钟
FIRST_LOW_FAN_OFF_TIME = 10; // 10分钟
LOW_LEVEL_FAN_ON_TIME = 5; // 5分钟
LOW_LEVEL_FAN_OFF_TIME = 40; // 40分钟
// 特殊模式默认值
SPECIAL_INITIAL_STOP_TIME = 1440; // 24小时 = 1440分钟
SPECIAL_FIRST_PHASE_TIME = 2880; // 48小时 = 2880分钟
SPECIAL_PUMP_RUN_TIME = 1; // 1分钟
SPECIAL_FIRST_STOP_TIME = 360; // 360分钟
SPECIAL_SECOND_PHASE_TIME = 1; // 1分钟如需48小时请改为2880
SPECIAL_SECOND_STOP_TIME = 240; // 240分钟
// 保存默认值到EEPROM
Time_Save();
}
2025-04-16 09:58:09 +08:00
}