fix timer not stop bug
This commit is contained in:
@@ -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);
|
||||
|
||||
+11
-6
@@ -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
Reference in New Issue
Block a user