Projet_voilier2/Projet_DevDrivers/Sources/Rouli.c
2023-04-07 15:19:56 +02:00

48 lines
1 KiB
C

#include "stm32f10x.h"
#include "GPIO.h"
#include "TIMER.h"
#include "MySPI.h"
#include "Rouli.h"
/* Dans cette partie nous allons traiter le roulis du voiluier */
void rouli_InitAccel(void)
{
MySPI_Clear_NSS();
/* Init de l'accelerometre avec SPI */
MySPI_Send(WRITE|DATA_FORMAT); /* Ecriture dans le data Format */
MySPI_Send(0x0B); /* Envoi des paramètres */
MySPI_Send(WRITE|BW_RATE); /* Ecriture dans le BW rate */
MySPI_Send(0x0A); /* Envoi des paramètres */
MySPI_Send(WRITE|POWER_CTL); /* Ecriture dans le POWER_CTL */
MySPI_Send(0x08); /* Envoi des paramètre */
MySPI_Set_NSS();
}
void rouli_GetAccel (XYZ * axe)
{
char X0,X1,Y0,Y1,Z0,Z1;
MySPI_Clear_NSS();
MySPI_Send(READ_MB|DATAX0);
X0 = MySPI_Read () ;
X1 = MySPI_Read () ;
Y0 = MySPI_Read () ;
Y1 = MySPI_Read () ;
Z0 = MySPI_Read () ;
Z1 = MySPI_Read () ;
MySPI_Set_NSS();
axe->gX = ((short int)((X1<<8)|X0))*0.004;
axe->gY = ((short int)((Y1<<8)|Y0))*0.004;
axe->gZ = ((short int)((Z1<<8)|Z0))*0.004;
}
// axe y entre -0.7 et 0.7