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" #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 #ifndef DCMOTOR_H
#define 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 #endif

View file

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