82 lines
2.0 KiB
C
82 lines
2.0 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;
|
|
const uint8_t am_state_machine_arr[3][3] = {
|
|
//0,1,2
|
|
{1,2,0},
|
|
{2,0,1},
|
|
{1,2,0},
|
|
};
|
|
|
|
|
|
void amCtrl_Init(void)
|
|
{
|
|
amCtrl_state = 0;
|
|
am_state_machine_counter = 0;
|
|
}
|
|
|
|
void amCtrl_SetState(uint8_t state)
|
|
{
|
|
amCtrl_state = state;
|
|
}
|
|
|
|
void amCtrl_Task(void)//50ms
|
|
{
|
|
if (amCtrl_state == 0)
|
|
{
|
|
setPumpState(PUMP_OFF);
|
|
am_state_machine = 0;
|
|
am_state_machine_counter = 0;
|
|
}
|
|
else
|
|
{
|
|
setPumpState(PUMP_ON);
|
|
switch (am_state_machine)
|
|
{
|
|
case 0:
|
|
setValveState(VALVE4,VALVE_ON);
|
|
setValveState(VALVE5,VALVE_OFF);
|
|
setValveState(VALVE6,VALVE_OFF);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= 20)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = am_state_machine_arr[amCtrl_state][am_state_machine];
|
|
}
|
|
break;
|
|
|
|
case 1:
|
|
setValveState(VALVE4,VALVE_OFF);
|
|
setValveState(VALVE5,VALVE_ON);
|
|
setValveState(VALVE6,VALVE_OFF);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= 20)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = am_state_machine_arr[amCtrl_state][am_state_machine];
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
setValveState(VALVE4,VALVE_OFF);
|
|
setValveState(VALVE5,VALVE_OFF);
|
|
setValveState(VALVE6,VALVE_ON);
|
|
am_state_machine_counter++;
|
|
if (am_state_machine_counter >= 20)
|
|
{
|
|
am_state_machine_counter = 0;
|
|
am_state_machine = am_state_machine_arr[amCtrl_state][am_state_machine];
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
} |