57 lines
No EOL
1.2 KiB
C
57 lines
No EOL
1.2 KiB
C
#include "stm32f10x.h"
|
|
#include "accelerometer.h"
|
|
#include "MySPI.h"
|
|
#include "gpio.h"
|
|
|
|
void accelerometre()
|
|
{
|
|
int dataX ;
|
|
float GX ;
|
|
int dataY ;
|
|
float GY;
|
|
int dataZ ;
|
|
float GZ;
|
|
|
|
char testReg;
|
|
MySPI_Init(SPI1);
|
|
|
|
MySPI_Clear_NSS(); //CS LOW
|
|
MySPI_Send(0x2D);//Registre Auto_sleep + Write + measure a 1
|
|
MySPI_Send(0x08);// désactive
|
|
MySPI_Set_NSS();//CS HIGH
|
|
|
|
MySPI_Clear_NSS(); //CS LOW
|
|
MySPI_Send(0xAD);// regisstre 0x2D en lecture
|
|
testReg = MySPI_Read(); // lecture de la valeur du registre
|
|
MySPI_Set_NSS();//CS HIGH
|
|
|
|
|
|
MySPI_Clear_NSS(); //CS LOW
|
|
MySPI_Send(0X2C);//Registre power consuption + Write
|
|
MySPI_Send(0X1A);//Paramétrage hors low consumption + 100Hz output data rate
|
|
MySPI_Set_NSS();//CS HIGH
|
|
|
|
MySPI_Clear_NSS(); //CS LOW
|
|
MySPI_Send(0x31);//registre Data format + write
|
|
MySPI_Send(0x17);//
|
|
MySPI_Set_NSS();//CS HIGH
|
|
|
|
MySPI_Clear_NSS(); //CS LOW
|
|
MySPI_Send(0xF2);
|
|
dataX = MySPI_Read()<<8;
|
|
dataX |= MySPI_Read();
|
|
dataX &= 0xE;
|
|
GX = dataX*0.004;
|
|
dataY = MySPI_Read()<<8;
|
|
dataY |= MySPI_Read();
|
|
dataY &= 0xE;
|
|
GY = dataY*0.004;
|
|
dataZ = MySPI_Read()<<8;
|
|
dataZ |= MySPI_Read();
|
|
dataZ &= 0xE;
|
|
GZ = dataZ*0.004;
|
|
MySPI_Set_NSS();//CS HIGH
|
|
|
|
|
|
|
|
} |