#ifndef INC_MOTOR_H_
#define INC_MOTOR_H_

#include "main.h"

#define M_IN1_PORT				GPIOC
#define M_IN1_PIN					GPIO_PIN_12
#define M_IN2_PORT				GPIOC
#define M_IN2_PIN					GPIO_PIN_10
#define M_IN3_PORT				GPIOA
#define M_IN3_PIN					GPIO_PIN_6
#define M_IN4_PORT				GPIOA
#define M_IN4_PIN					GPIO_PIN_7

void motorSelect(uint8_t select);

#endif /* INC_MOTOR_H_ */
// motor.c
#include "motor.h"

uint8_t mtMode_L1 = 0, mtMode_L2 = 0;
uint8_t mtMode_R1 = 0, mtMode_R2 = 0;

void motorSelect(uint8_t select) {
	switch (select) {
	case 0:
		mtMode_R1 = 0;
		mtMode_R2 = 0;
		mtMode_L1 = 0;
		mtMode_L2 = 0;
		break;

	case 1:
		mtMode_R1 = 1;
		mtMode_R2 = 0;
		mtMode_L1 = 1;
		mtMode_L2 = 0;
		break;

	case 2:
		mtMode_R1 = 0;
		mtMode_R2 = 1;
		mtMode_L1 = 0;
		mtMode_L2 = 1;
		break;

	case 3:
		mtMode_R1 = 1;
		mtMode_R2 = 0;
		mtMode_L1 = 0;
		mtMode_L2 = 0;
		break;

	case 4:
		mtMode_R1 = 0;
		mtMode_R2 = 0;
		mtMode_L1 = 1;
		mtMode_L2 = 0;
		break;

	case 5:
		mtMode_R1 = 1;
		mtMode_R2 = 0;
		mtMode_L1 = 0;
		mtMode_L2 = 1;
		break;

	case 6:
		mtMode_R1 = 0;
		mtMode_R2 = 1;
		mtMode_L1 = 1;
		mtMode_L2 = 0;
		break;

	case 7:
		mtMode_R1 = 1;
		mtMode_R2 = 1;
		mtMode_L1 = 1;
		mtMode_L2 = 1;
		break;
	}

	HAL_GPIO_WritePin(M_IN2_PORT, M_IN2_PIN, mtMode_R1);
	HAL_GPIO_WritePin(M_IN1_PORT, M_IN1_PIN, mtMode_R2);
	HAL_GPIO_WritePin(M_IN3_PORT, M_IN3_PIN, mtMode_L1);
	HAL_GPIO_WritePin(M_IN4_PORT, M_IN4_PIN, mtMode_L2);
}