mirror of
https://github.com/yoboujon/dumber.git
synced 2025-06-08 22:00:49 +02:00
58 lines
2 KiB
C
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_ */
|
|
|