Les travaux fait en séance 19/11. On est arrivé à récuperer le DATA de l'acceleromètre du voilier. Faut le tester en réel.
93 lines
2.2 KiB
C
93 lines
2.2 KiB
C
#include <stm32f10x.h>
|
|
#include <Horloge.h>
|
|
#include <MYGPIO.h>
|
|
#include <stdlib.h>
|
|
#include <MySPI.h>
|
|
#include <stdint.h>
|
|
|
|
//Pin GPIOA_9 et GPIOA_10 sont pris par USART
|
|
|
|
/*
|
|
I2C SDA IN/OUT
|
|
I2C SCL OUT
|
|
*/
|
|
|
|
|
|
//il faut recuperer le data qui sort
|
|
|
|
/*
|
|
SPI1_NSS PA4 - Utilisé
|
|
NSS = 0 -> slave active
|
|
NSS = 1 -> slave inactive
|
|
|
|
SPI1_SCK PA5
|
|
SPI1_MISO PA6
|
|
SPI1_MOSI PA7
|
|
|
|
TIM3 CH3 PB0
|
|
|
|
0x32 50 DATAX0 R 00000000 X-Axis Data 0
|
|
0x33 51 DATAX1 R 00000000 X-Axis Data 1
|
|
0x34 52 DATAY0 R 00000000 Y-Axis Data 0
|
|
0x35 53 DATAY1 R 00000000 Y-Axis Data 1
|
|
0x36 54 DATAZ0 R 00000000 Z-Axis Data 0
|
|
0x37 55 DATAZ1 R 00000000 Z-Axis Data 1
|
|
|
|
*/
|
|
|
|
void initAccelo(void){
|
|
MySPI_Init(SPI1); //Active le SCK
|
|
}
|
|
|
|
|
|
// send bits, les bits inclus en char envoyés: RW MB Adress_bit5 @4 @3 @2 @1 @0
|
|
//RW: R = 1 et W = 0
|
|
//MB à 1 veut measurement et MB à 0 Standby
|
|
uint16_t * RecupAccelo(void){ //Renvoie 48 en forme des chars
|
|
static uint16_t Messias[3];
|
|
|
|
//On lit X0
|
|
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
|
MySPI_Send(0b11110010); //Lecture de X0 et MB à 1 pour garder les valeurs
|
|
uint16_t X0 = MySPI_Read();
|
|
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
|
|
|
//On lit X1
|
|
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
|
MySPI_Send(0b10110011); //Lecture de X1
|
|
Messias[0] = X0 | (MySPI_Read() << 8);
|
|
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
|
|
|
//On lit Y0
|
|
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
|
MySPI_Send(0b10110100); //Lecture de Y0
|
|
uint16_t Y0 = MySPI_Read();
|
|
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
|
|
|
//On lit Y1
|
|
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
|
MySPI_Send(0b10110101); //Lecture de Y1
|
|
Messias[1] = Y0 | (MySPI_Read() << 8);
|
|
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
|
|
|
//On lit Z0
|
|
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
|
MySPI_Send(0b10110110); //Lecture de Z0
|
|
uint16_t Z0 = MySPI_Read();
|
|
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
|
|
|
//On lit Z1
|
|
MySPI_Clear_NSS();//Mettre la broche PA4 à 0
|
|
MySPI_Send(0b10110111); //Lecture de Z1
|
|
Messias[2] = Z0 | (MySPI_Read() << 8);
|
|
MySPI_Set_NSS(); //Mettre la broche PA4 à 1
|
|
|
|
return Messias;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|