227 lines
5.2 KiB
C
227 lines
5.2 KiB
C
|
|
#include "MotorCtrl.h"
|
|
|
|
#include "hwCtrl.h"
|
|
#include "PINdef.h"
|
|
#include "appTask.h"
|
|
|
|
static uint8_t amCtrl_state = 0,am_state_machine = 0;
|
|
static uint16_t am_state_machine_counter = 0;
|
|
static void amCtrl_Act1(void);
|
|
static void amCtrl_Act2(void);
|
|
static void amCtrl_Act3(void);
|
|
static uint16_t amCtrl_counter;
|
|
|
|
void amCtrl_Init(void)
|
|
{
|
|
amCtrl_state = 0;
|
|
am_state_machine_counter = 0;
|
|
}
|
|
|
|
void amCtrl_SetState(uint8_t state)
|
|
{
|
|
amCtrl_state = state;
|
|
am_state_machine = 0;
|
|
am_state_machine_counter = 0;
|
|
|
|
}
|
|
|
|
|
|
void amCtrl_Task(void)//50ms
|
|
{
|
|
static uint8_t PumpDutyCounter;
|
|
if (amCtrl_state == 0)
|
|
{
|
|
setPumpState(PUMP_OFF);
|
|
setValveState(VALVE3,VALVE_OFF);
|
|
setValveState(VALVE2,VALVE_OFF);
|
|
setValveState(VALVE1,VALVE_OFF);
|
|
am_state_machine = 0;
|
|
am_state_machine_counter = 0;
|
|
amCtrl_counter = 0;
|
|
}
|
|
else
|
|
{
|
|
switch (amCtrl_state)
|
|
{
|
|
case 1:
|
|
PumpDutyCounter++;
|
|
if (PumpDutyCounter >= 10)
|
|
{
|
|
PumpDutyCounter = 0;
|
|
setPumpState(PUMP_ON);
|
|
amCtrl_Act1();
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
PumpDutyCounter++;
|
|
if (PumpDutyCounter >= 10)
|
|
{
|
|
PumpDutyCounter = 0;
|
|
setPumpState(PUMP_ON);
|
|
amCtrl_Act2();
|
|
}
|
|
|
|
break;
|
|
|
|
case 3:
|
|
PumpDutyCounter++;
|
|
if (PumpDutyCounter == 9)
|
|
{
|
|
setPumpState(PUMP_OFF);
|
|
}
|
|
else
|
|
{
|
|
setPumpState(PUMP_ON);
|
|
}
|
|
if (PumpDutyCounter >= 10)
|
|
{
|
|
PumpDutyCounter = 0;
|
|
amCtrl_Act3();
|
|
}
|
|
|
|
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
/*
|
|
//20240622取消定时15分钟
|
|
amCtrl_counter++;
|
|
if (amCtrl_counter > 18000)
|
|
{
|
|
amCtrl_state = 0;
|
|
}
|
|
*/
|
|
}
|
|
}
|
|
|
|
#if CONFIG == HIGH_CONFIG
|
|
//tbd
|
|
#else
|
|
#define CHONGQI_TIME_6S 120
|
|
#define CHONGQI_TIME_6S5 130
|
|
#define CHONGQI_TIME_7S 140
|
|
static void amCtrl_Act1(void)//50ms
|
|
{
|
|
switch (am_state_machine)
|
|
{
|
|
case 0:
|
|
setValveState(VALVE1,VALVE_ON);
|
|
setValveState(VALVE2,VALVE_OFF);
|
|
setValveState(VALVE3,VALVE_OFF);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= CHONGQI_TIME_6S)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = 1;
|
|
}
|
|
break;
|
|
case 1:
|
|
setValveState(VALVE1,VALVE_OFF);
|
|
setValveState(VALVE2,VALVE_ON);
|
|
setValveState(VALVE3,VALVE_OFF);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= CHONGQI_TIME_6S)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = 2;
|
|
}
|
|
break;
|
|
case 2:
|
|
setValveState(VALVE1,VALVE_OFF);
|
|
setValveState(VALVE2,VALVE_OFF);
|
|
setValveState(VALVE3,VALVE_ON);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= CHONGQI_TIME_6S)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = 0;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
am_state_machine = 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
static void amCtrl_Act2(void)
|
|
{
|
|
switch (am_state_machine)
|
|
{
|
|
case 0:
|
|
setValveState(VALVE3,VALVE_ON);
|
|
setValveState(VALVE2,VALVE_OFF);
|
|
setValveState(VALVE1,VALVE_ON);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= CHONGQI_TIME_7S)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = 1;
|
|
}
|
|
break;
|
|
case 1:
|
|
setValveState(VALVE3,VALVE_OFF);
|
|
setValveState(VALVE2,VALVE_ON);
|
|
setValveState(VALVE1,VALVE_OFF);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= CHONGQI_TIME_7S)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = 0;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
am_state_machine = 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
static void amCtrl_Act3(void)
|
|
{
|
|
switch (am_state_machine)
|
|
{
|
|
case 0:
|
|
setValveState(VALVE3,VALVE_ON);
|
|
setValveState(VALVE2,VALVE_OFF);
|
|
setValveState(VALVE1,VALVE_OFF);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= CHONGQI_TIME_6S5)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = 1;
|
|
}
|
|
break;
|
|
case 1:
|
|
setValveState(VALVE3,VALVE_OFF);
|
|
setValveState(VALVE2,VALVE_ON);
|
|
setValveState(VALVE1,VALVE_OFF);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= CHONGQI_TIME_6S5)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = 2;
|
|
}
|
|
break;
|
|
case 2:
|
|
setValveState(VALVE3,VALVE_OFF);
|
|
setValveState(VALVE2,VALVE_OFF);
|
|
setValveState(VALVE1,VALVE_ON);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= CHONGQI_TIME_6S5)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = 0;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
#endif
|