BE_VOILIER/Pilotes/Source/Accelerometre.c
2025-11-25 19:18:16 +01:00

31 lines
840 B
C
Executable file

#include <stm32f10x.h>
#include <Horloge.h>
//#include <MYGPIO.h>
#include <stdlib.h>
#include <stdint.h>
void initLacheur(void){
GPIOB->CRH &= ~(0xF << (0 * 4));
GPIOB->CRH |= (0xA << (0 * 4)); //On met GPIOB.8 en mode output 2Mhz, alternate pp
Timer_Init(TIM4, 20000 - 1, 71); //Claire m'a aidé
}
//Recuperer le DATA en X, Z, Y
void LacheVoile(uint16_t * DATA){
//uint16_t X = DATA[0]; //Z le longe du mât (masten)
//uint16_t Z = DATA[2];// //X le long du sense de voilier
uint16_t Y = DATA[1]; ////Y vers les bords (Tribord/Babord)
if (Y>=0x007B){// exatement à 40 degrés, on lache le 40%. 0xFF*(40deg/90deg)
//Le PWM du moteur est gère par PB7
MyTimer_PWM(TIM4, 3); //TIM4 CH3 pour PB8
Set_DutyCycle_PWM(TIM4, 3, 2); //On met Duty cycle à 2% et il reste autour de 90 deg
}
}