generated from Template/H563ZI-HAL-CMake-Template
Final
This commit is contained in:
81
fun/Motor.c
81
fun/Motor.c
@@ -64,23 +64,68 @@ void MotorB_Speed(uint8_t speed)
|
||||
// ʾ<><CABE> ͬʱ<CDAC><CAB1><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>A/B
|
||||
// <20><>ʾ <20><><EFBFBD><EFBFBD> Dir 0 ---- ǰ<><C7B0> go forward
|
||||
// <20><><EFBFBD><EFBFBD> Dir 1 ---- <20><><EFBFBD><EFBFBD> go forward
|
||||
void DriveBOTH(int16_t speedA,int16_t speedB)
|
||||
//void DriveBOTH(int16_t speedA,int16_t speedB)
|
||||
//{
|
||||
// // <20><><EFBFBD><EFBFBD> A
|
||||
// if (speedA >= 0) MotorA_Dir(0);
|
||||
// else
|
||||
// {
|
||||
// MotorA_Dir(1);
|
||||
// speedA = -speedA;
|
||||
// }
|
||||
// MotorA_Speed(speedA);
|
||||
//
|
||||
// // <20><><EFBFBD><EFBFBD> B
|
||||
// if (speedB >= 0) MotorB_Dir(0);
|
||||
// else
|
||||
// {
|
||||
// MotorB_Dir(1);
|
||||
// speedB = -speedB;
|
||||
// }
|
||||
// MotorB_Speed(speedB);
|
||||
//}
|
||||
|
||||
|
||||
// Motor.c <20><><EFBFBD>Ͻ<EFBFBD><CFBD>д<EFBFBD><D0B4><EFBFBD>
|
||||
void DriveBOTH(int16_t speedA, int16_t speedB)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> A
|
||||
if (speedA >= 0) MotorA_Dir(0);
|
||||
else
|
||||
{
|
||||
MotorA_Dir(1);
|
||||
speedA = -speedA;
|
||||
}
|
||||
MotorA_Speed(speedA);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A
|
||||
if(speedA == 0) {
|
||||
// <20>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
||||
HAL_GPIO_WritePin(AIN1_GPIO_Port, AIN1_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(AIN2_GPIO_Port, AIN2_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
else if(speedA > 0) {
|
||||
HAL_GPIO_WritePin(AIN1_GPIO_Port, AIN1_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(AIN2_GPIO_Port, AIN2_Pin, GPIO_PIN_RESET);
|
||||
speedA = abs(speedA); // ȡ<><C8A1><EFBFBD><EFBFBD>ֵ
|
||||
}
|
||||
else {
|
||||
HAL_GPIO_WritePin(AIN1_GPIO_Port, AIN1_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(AIN2_GPIO_Port, AIN2_Pin, GPIO_PIN_SET);
|
||||
speedA = abs(speedA); // ȡ<><C8A1><EFBFBD><EFBFBD>ֵ
|
||||
}
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> B
|
||||
if (speedB >= 0) MotorA_Dir(0);
|
||||
else
|
||||
{
|
||||
MotorB_Dir(1);
|
||||
speedB = -speedB;
|
||||
}
|
||||
MotorB_Speed(speedB);
|
||||
}
|
||||
if(speedB == 0) {
|
||||
// <20>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
||||
HAL_GPIO_WritePin(BIN1_GPIO_Port, BIN1_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(BIN2_GPIO_Port, BIN2_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
else if(speedB > 0) {
|
||||
HAL_GPIO_WritePin(BIN1_GPIO_Port, BIN1_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(BIN2_GPIO_Port, BIN2_Pin, GPIO_PIN_RESET);
|
||||
speedB = abs(speedB); // ȡ<><C8A1><EFBFBD><EFBFBD>ֵ
|
||||
}
|
||||
else {
|
||||
HAL_GPIO_WritePin(BIN1_GPIO_Port, BIN1_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(BIN2_GPIO_Port, BIN2_Pin, GPIO_PIN_SET);
|
||||
speedB = abs(speedB); // ȡ<><C8A1><EFBFBD><EFBFBD>ֵ
|
||||
}
|
||||
// ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B...
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>PWM
|
||||
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_4, speedA);
|
||||
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4, speedB);
|
||||
}
|
||||
Reference in New Issue
Block a user