fix timer not stop bug
This commit is contained in:
@@ -26,11 +26,19 @@ void AccurateMotorClass::TurnLeft(uint8_t degree)
|
|||||||
{
|
{
|
||||||
DCMotor.Stop();
|
DCMotor.Stop();
|
||||||
SetCarNotRunning();
|
SetCarNotRunning();
|
||||||
|
MsTimer2::stop();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
MsTimer2::start();
|
MsTimer2::start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AccurateMotorClass::ForceStop()
|
||||||
|
{
|
||||||
|
DCMotor.Stop();
|
||||||
|
SetCarNotRunning();
|
||||||
|
MsTimer2::stop();
|
||||||
|
}
|
||||||
|
|
||||||
void AccurateMotorClass::TurnRight(uint8_t degree)
|
void AccurateMotorClass::TurnRight(uint8_t degree)
|
||||||
{
|
{
|
||||||
if (car_running)
|
if (car_running)
|
||||||
@@ -42,6 +50,7 @@ void AccurateMotorClass::TurnRight(uint8_t degree)
|
|||||||
{
|
{
|
||||||
DCMotor.Stop();
|
DCMotor.Stop();
|
||||||
SetCarNotRunning();
|
SetCarNotRunning();
|
||||||
|
MsTimer2::stop();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
MsTimer2::start();
|
MsTimer2::start();
|
||||||
@@ -58,6 +67,7 @@ void AccurateMotorClass::RunForward(uint8_t distence)
|
|||||||
{
|
{
|
||||||
DCMotor.Stop();
|
DCMotor.Stop();
|
||||||
SetCarNotRunning();
|
SetCarNotRunning();
|
||||||
|
MsTimer2::stop();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
MsTimer2::start();
|
MsTimer2::start();
|
||||||
@@ -85,6 +95,7 @@ void AccurateMotorClass::RunBackward(uint8_t distence)
|
|||||||
{
|
{
|
||||||
DCMotor.Stop();
|
DCMotor.Stop();
|
||||||
SetCarNotRunning();
|
SetCarNotRunning();
|
||||||
|
MsTimer2::stop();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
MsTimer2::start();
|
MsTimer2::start();
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ private:
|
|||||||
void DelayUntilCarStop();
|
void DelayUntilCarStop();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void ForceStop();
|
||||||
void TurnLeft(uint8_t degree);
|
void TurnLeft(uint8_t degree);
|
||||||
void TurnRight(uint8_t degree);
|
void TurnRight(uint8_t degree);
|
||||||
void RunForward(uint8_t distence);
|
void RunForward(uint8_t distence);
|
||||||
|
|||||||
+11
-6
@@ -58,26 +58,31 @@ void Handler::MainCarRx_Handler(uint8_t* com)
|
|||||||
switch (com[2])
|
switch (com[2])
|
||||||
{
|
{
|
||||||
case 0x01: //停止
|
case 0x01: //停止
|
||||||
DCMotor.Stop();
|
//DCMotor.Stop();
|
||||||
|
AccurateMotor.ForceStop();
|
||||||
break;
|
break;
|
||||||
case 0x02: //前进
|
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;
|
ZigBee_back[2] = 0x03;
|
||||||
break;
|
break;
|
||||||
case 0x03: //后退
|
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;
|
ZigBee_back[2] = 0x03;
|
||||||
break;
|
break;
|
||||||
case 0x04: //左转
|
case 0x04: //左转
|
||||||
DCMotor.TurnLeft(com[3]);
|
//DCMotor.TurnLeft(com[3]);
|
||||||
|
AccurateMotor.TurnLeft(com[3]);
|
||||||
ZigBee_back[2] = 0x02;
|
ZigBee_back[2] = 0x02;
|
||||||
break;
|
break;
|
||||||
case 0x05: //右转
|
case 0x05: //右转
|
||||||
DCMotor.TurnRight(com[3]);
|
//DCMotor.TurnRight(com[3]);
|
||||||
|
AccurateMotor.TurnRight(com[3]);
|
||||||
ZigBee_back[2] = 0x02;
|
ZigBee_back[2] = 0x02;
|
||||||
break;
|
break;
|
||||||
case 0x06: //循迹
|
case 0x06: //循迹
|
||||||
DCMotor.CarTrack(com[3]);
|
//DCMotor.CarTrack(com[3]);
|
||||||
ZigBee_back[2] = 0x00;
|
ZigBee_back[2] = 0x00;
|
||||||
break;
|
break;
|
||||||
case 0x07: //码盘清零
|
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