46 lines
No EOL
1 KiB
C
46 lines
No EOL
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.5 et 1
|