M12-05P/app/user/MotorCtrl.c

118 lines
2.3 KiB
C
Raw Normal View History

2024-01-05 16:19:49 +08:00
#include "MotorCtrl.h"
#include "hwCtrl.h"
#include "PINdef.h"
#include "appTask.h"
//#include "pfdl.h"
uint8_t MotorState[6],MotorStateReal[6];
void MotorValueInit(void)
{
uint8_t i = 0;
for (i = 0; i < 6; i++)
{
MotorState[i] = ACT_NOACT;
MotorStateReal[i] = ACT_NOACT;
}
}
void setMotorState(uint8_t motorid,uint8_t act)
{
//motorid-=1;
if (act <= ACT_XH && motorid < 6)
{
MotorState[motorid] = act;
}
}
2024-01-11 16:29:14 +08:00
/*
20240106
<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M1<EFBFBD><EFBFBD>ת6<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>M1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>15<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M2<EFBFBD><EFBFBD>ת8<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>M2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>17<EFBFBD>
20240111
<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M1<EFBFBD><EFBFBD>ת2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>M1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>15<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M2<EFBFBD><EFBFBD>ת5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>M2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>17<EFBFBD>
*/
2024-01-05 16:19:49 +08:00
2024-01-11 16:29:14 +08:00
#define MOTOR_DELAY_TIME_8S (500)
#define MOTOR_DELAY_TIME_6S (200)
2024-01-06 17:05:59 +08:00
#define MOTOR_DELAY_TIME_15S (1500)
#define MOTOR_DELAY_TIME_17S (1700)
2024-01-05 16:19:49 +08:00
void MotorCtrl(void)//10ms
{
static uint16_t MotorRunCount;
switch (MotorState[0])
{
case ACT_NOACT:
MotorRunCount = 0;
MotorStateReal[MOTOR1] = ACT_NOACT;
MotorStateReal[MOTOR2] = ACT_NOACT;
break;
case ACT_XQ:
MotorRunCount++;
2024-01-06 17:05:59 +08:00
if (MotorRunCount > MOTOR_DELAY_TIME_15S)
{
MotorRunCount = MOTOR_DELAY_TIME_15S;
MotorStateReal[MOTOR1] = ACT_NOACT;
}
else
{
MotorStateReal[MOTOR1] = ACT_XQ;
}
2024-01-05 16:19:49 +08:00
if (MotorRunCount > MOTOR_DELAY_TIME_6S)
{
2024-01-06 17:05:59 +08:00
//MotorRunCount = MOTOR_DELAY_TIME_6S;
2024-01-05 16:19:49 +08:00
MotorStateReal[MOTOR2] = ACT_XQ;
}
else
{
MotorStateReal[MOTOR2] = ACT_NOACT;
}
break;
case ACT_XH:
MotorRunCount++;
2024-01-06 17:05:59 +08:00
if (MotorRunCount > MOTOR_DELAY_TIME_17S)
{
MotorRunCount = MOTOR_DELAY_TIME_17S;
MotorStateReal[MOTOR2] = ACT_NOACT;
}
else
{
MotorStateReal[MOTOR2] = ACT_XH;
}
2024-01-05 16:19:49 +08:00
if (MotorRunCount > MOTOR_DELAY_TIME_8S)
{
2024-01-06 17:05:59 +08:00
//MotorRunCount = MOTOR_DELAY_TIME_8S;
2024-01-05 16:19:49 +08:00
MotorStateReal[MOTOR1] = ACT_XH;
}
else
{
MotorStateReal[MOTOR1] = ACT_NOACT;
}
break;
default:
break;
}
MOTOR1Ctrl(MotorStateReal[MOTOR1]);
MOTOR2Ctrl(MotorStateReal[MOTOR2]);
}