huyongji1.1-system/App/Ozone/Ozone.c

73 lines
2.0 KiB
C
Raw Permalink Normal View History

2025-04-16 09:58:09 +08:00
#include "Ozone.h"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>
uint8_t ozone_running = 0; // Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
uint32_t ozone_timer = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
uint32_t OZONE_ON_TIME = 1; // <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
uint32_t OZONE_OFF_TIME = 1; // ֹͣ1<D6B9><31><EFBFBD><EFBFBD>
2025-05-20 09:41:22 +08:00
void Save_Ozone_Time_To_EEPROM(uint32_t on_time, uint32_t off_time) // <20><><EFBFBD><EFBFBD>
{
Save_Float_To_EEPROM(OZONE_ON_TIME_ADDR, (float)on_time); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
Save_Float_To_EEPROM(OZONE_OFF_TIME_ADDR, (float)off_time); // <20><><EFBFBD><EFBFBD>ֹͣʱ<D6B9><CAB1>
Inf_AT24C02_WriteByte(OZONE_FLAG_ADDR, OZONE_FLAG_VAL); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
}
// <20><>EEPROM<4F><4D>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OZENE_FLAG_ADDR
void Load_Ozone_Time_From_EEPROM(void)
{
uint8_t flag = Inf_AT24C02_ReadByte(OZONE_FLAG_ADDR);
if(flag == OZONE_FLAG_VAL)
{
// <20><>ȡʱ<C8A1><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OZONE_ON_TIME = (uint32_t)Read_Float_From_EEPROM(OZONE_ON_TIME_ADDR);
OZONE_OFF_TIME = (uint32_t)Read_Float_From_EEPROM(OZONE_OFF_TIME_ADDR);
}
else
{
// <20><><EFBFBD><EFBFBD>EEPROM<4F><4D>û<EFBFBD><C3BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>ݣ<EFBFBD>ʹ<EFBFBD><CAB9>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Save_Ozone_Time_To_EEPROM(OZONE_ON_TIME, OZONE_OFF_TIME);
}
}
2025-04-16 09:58:09 +08:00
void Ozone_Init(void)
{
2025-05-20 09:41:22 +08:00
Load_Ozone_Time_From_EEPROM();
2025-04-16 09:58:09 +08:00
ozone_running = 1; // <20>ϵ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ozone_timer = 0; // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
Ozone_Control(1); // <20><>ʼ״ֱ̬<CCAC>ӿ<EFBFBD><D3BF><EFBFBD>
// printf("Ozone Init OK, starting immediately\n");
}
void Ozone_Control_Update(void)
{
if(ozone_running)
{
// <20><>1<EFBFBD><31><EFBFBD>ӿ<EFBFBD>1<EFBFBD><31><EFBFBD>ӹص<D3B9><D8B5>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
if(ozone_timer <= OZONE_ON_TIME)
{
Ozone_Control(1); // ֱ<>ӿ<EFBFBD><D3BF>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
// printf("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d<><64>\n", ozone_timer);
}
else if(ozone_timer <= (OZONE_ON_TIME + OZONE_OFF_TIME))
{
Ozone_Control(0);
// printf("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>: %d<><64>\n", ozone_timer);
}
else
{
ozone_timer = 0; // <20><><EFBFBD>ü<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ѭ<EFBFBD><D1AD>
Ozone_Control(1);
// printf("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ѭ<EFBFBD><D1AD>\n");
}
}
else
{
// Զ<>̿<EFBFBD><CCBF>ƹر<C6B9>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ֹر<D6B9>״̬
Ozone_Control(0);
// printf("<22><><EFBFBD><EFBFBD><EFBFBD>ѹر<D1B9><>̿<EFBFBD><CCBF><EFBFBD>)\n");
}
}