fix timer not stop bug

master
UnknownObject 2 years ago
parent ab55151a9d
commit 6884cf2df8

@ -26,11 +26,19 @@ void AccurateMotorClass::TurnLeft(uint8_t degree)
{
DCMotor.Stop();
SetCarNotRunning();
MsTimer2::stop();
}
});
MsTimer2::start();
}
void AccurateMotorClass::ForceStop()
{
DCMotor.Stop();
SetCarNotRunning();
MsTimer2::stop();
}
void AccurateMotorClass::TurnRight(uint8_t degree)
{
if (car_running)
@ -42,6 +50,7 @@ void AccurateMotorClass::TurnRight(uint8_t degree)
{
DCMotor.Stop();
SetCarNotRunning();
MsTimer2::stop();
}
});
MsTimer2::start();
@ -58,6 +67,7 @@ void AccurateMotorClass::RunForward(uint8_t distence)
{
DCMotor.Stop();
SetCarNotRunning();
MsTimer2::stop();
}
});
MsTimer2::start();
@ -85,6 +95,7 @@ void AccurateMotorClass::RunBackward(uint8_t distence)
{
DCMotor.Stop();
SetCarNotRunning();
MsTimer2::stop();
}
});
MsTimer2::start();

@ -31,6 +31,7 @@ private:
void DelayUntilCarStop();
public:
void ForceStop();
void TurnLeft(uint8_t degree);
void TurnRight(uint8_t degree);
void RunForward(uint8_t distence);

@ -58,26 +58,31 @@ void Handler::MainCarRx_Handler(uint8_t* com)
switch (com[2])
{
case 0x01: //停止
DCMotor.Stop();
//DCMotor.Stop();
AccurateMotor.ForceStop();
break;
case 0x02: //前进
DCMotor.Go(com[3], (com[4] + (com[5] << 8)));
//DCMotor.Go(com[3], (com[4] + (com[5] << 8)));
AccurateMotor.RunForward((com[4] + (com[5] << 8)));
ZigBee_back[2] = 0x03;
break;
case 0x03: //后退
DCMotor.Back(com[3], (com[4] + (com[5] << 8)));
//DCMotor.Back(com[3], (com[4] + (com[5] << 8)));
AccurateMotor.RunBackward((com[4] + (com[5] << 8)));
ZigBee_back[2] = 0x03;
break;
case 0x04: //左转
DCMotor.TurnLeft(com[3]);
//DCMotor.TurnLeft(com[3]);
AccurateMotor.TurnLeft(com[3]);
ZigBee_back[2] = 0x02;
break;
case 0x05: //右转
DCMotor.TurnRight(com[3]);
//DCMotor.TurnRight(com[3]);
AccurateMotor.TurnRight(com[3]);
ZigBee_back[2] = 0x02;
break;
case 0x06: //循迹
DCMotor.CarTrack(com[3]);
//DCMotor.CarTrack(com[3]);
ZigBee_back[2] = 0x00;
break;
case 0x07: //码盘清零

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save