diff --git a/AccurateMotor.cpp b/AccurateMotor.cpp index c920ef3..f99be02 100644 --- a/AccurateMotor.cpp +++ b/AccurateMotor.cpp @@ -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(); diff --git a/AccurateMotor.h b/AccurateMotor.h index fbf2a14..a62c99b 100644 --- a/AccurateMotor.h +++ b/AccurateMotor.h @@ -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); diff --git a/Handler.cpp b/Handler.cpp index bcb0e45..605f8ce 100644 --- a/Handler.cpp +++ b/Handler.cpp @@ -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: //ÂëÅÌÇåÁã diff --git a/__vm/Compile.vmps.xml b/__vm/Compile.vmps.xml index 0ad473a..26bfbf9 100644 --- a/__vm/Compile.vmps.xml +++ b/__vm/Compile.vmps.xml @@ -2,7 +2,7 @@ - + diff --git a/__vm/Upload.vmps.xml b/__vm/Upload.vmps.xml index 0ad473a..26bfbf9 100644 --- a/__vm/Upload.vmps.xml +++ b/__vm/Upload.vmps.xml @@ -2,7 +2,7 @@ - +