Projet_voilier2/Projet_voile/Sources/Rouli.c

43 lines
968 B
C
Raw Blame History

#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<61>tres */
MySPI_Send(WRITE|BW_RATE); /* Ecriture dans le BW rate */
MySPI_Send(0x0A); /* Envoi des param<61>tres */
MySPI_Send(WRITE|POWER_CTL); /* Ecriture dans le POWER_CTL */
MySPI_Send(0x08); /* Envoi des param<61>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