Premiere version de DCMotor, a modifier pour correspondre au fonctionnement en reel.

This commit is contained in:
Marino Benassai 2020-11-11 17:37:59 +01:00
parent 491fd3af6b
commit 92945a99af
4 changed files with 44 additions and 2 deletions

View file

@ -1 +1,35 @@
#include "DCMotor.h"
void DCMotor_conf(double speed) {
double speedAbs = (speed > 0.) ? speed : -speed;
int sens = (speed > 0.) ? 1 : 0;
//On règle la vitesse en valeur absolue
Timer_pwmo_conf(TIM2, LL_TIM_CHANNEL_CH2, 50, speedAbs);
//On règle le sens du moteur
GPIO_conf(GPIOA, LL_GPIO_PIN_2, LL_GPIO_MODE_OUTPUT, LL_GPIO_OUTPUT_OPENDRAIN, LL_GPIO_PULL_DOWN);
GPIO_setPin(GPIOA, LL_GPIO_PIN_2, sens);
}
void DCMotor_setSpeed(double speed) {
double speedAbs = (speed > 0.) ? speed : -speed;
int sens = (speed > 0.) ? 1 : 0;
Timer_pwmo_setDutyCycle(TIM2, LL_TIM_CHANNEL_CH2, speedAbs);
GPIO_setPin(GPIOA, LL_GPIO_PIN_2, sens);
}
double DCMotor_getSpeed(){
double speedAbs = Timer_pwmo_getDutyCycle(TIM2, LL_TIM_CHANNEL_CH2);
int sens = GPIO_readPin(GPIOA, LL_GPIO_PIN_2);
double speed = (sens) ? speedAbs : -speedAbs;
return speed;
}

View file

@ -1,5 +1,13 @@
#ifndef DCMOTOR_H
#define DCMOTOR_H
#include "GPIO.h"
#include "Timer.h"
void DCMotor_conf(double duty_cycle);
void DCMotor_setSpeed(double speed);
double DCMotor_getSpeed(void);
#endif

View file

@ -14,4 +14,4 @@ double RFReceiver_getData(){
return (duree_impulsion -1) * 200 - 100;
}
}

View file

@ -1,7 +1,7 @@
#ifndef RFRECEIVER_H
#define RFRECEIVER_H
#include "Timer.c"
#include "Timer.h"
void RFReceiver_conf(void);