dumber/software/robot/src/motor.h
2018-10-10 09:53:03 +02:00

58 lines
2 KiB
C

/**
******************************************************************************
* @file motor.c
* @author Lucien Senaneuch
* @version V1.0
* @date 19-June-2017
* @brief Gestion des moteurs du robots
*
* Ce fichier contient les fonctions lié à la gestions du moteur :
* - L'initialisation des PIN ultisé par les moteurs et encodeurs
* - L'initialisation du Timer2 servant de bases de temps aux PWM pour
* moteur1 et moteur2
* - L'initialisation du Timer3 servant à échantilloner les capteur magnétique de position
* des 2 moteurs.
* - La commandes des moteurs dans leurs 3 modes de fonctionnement (AVANT, ARRIERE, FREIN)
* et de leurs vitesse (valeur de PWM entre 0 et 255).
*
*@note TABLE DE VERITEE DU DRIVER MOTEUR
*
* ENABLE | INPUTS | Moteurs
* | |
* 0 | X | Roue Libre
*--------------------------------------------------------------------
* | CMDA & !CMDB | Avant
* 1 | !CMDA & CMDB | Arrière
* | CMDA = CMDB | Frein
******************************************************************************
******************************************************************************
*/
#ifndef _MOTOR_H_
#define _MOTOR_H_
#include "stm32f10x.h"
extern uint16_t G_speedRight, G_speedLeft, G_lapsLeft, G_lapsRight;
extern uint16_t tourG, tourD, tourPositionD,tourPositionG;
extern uint16_t asservissement;
extern uint16_t regulation_vitesseD, regulation_vitesseG;
/**
* @brief États que peuvent prendre chaque moteurs
* Avant, Arrière, Frein
*/
#define FORWARD 11
#define REVERSE 12
#define BRAKE 13
void motorConfigure(void);
void motorManagement(void);
void motorCmdRight(char mod, uint16_t pwm);
void motorCmdLeft(char mod, uint16_t pwm);
void motorSpeedUpdateLeft(uint16_t pwm);
void motorSpeedUpdateRight(uint16_t pwm);
void motorRegulation(char modRight, char modLeft, uint16_t lapsRight, uint16_t lapsLeft, uint16_t speedRight, uint16_t speedLeft);
#endif /* _MOTOR_H_ */