From 12752ff03be06151a3177df82d85aaa0f71cecfb Mon Sep 17 00:00:00 2001 From: Sanchez Manon Date: Fri, 7 Apr 2023 13:11:21 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20commentaire=20pour=20la=20fonction?= =?UTF-8?q?=20driver=5FIMU=5Fread.=20Modification=20des=20noms=20des=20fon?= =?UTF-8?q?ctions=20et=20modification=20du=20main.c=20pour=20plus=20de=20c?= =?UTF-8?q?lart=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- driver/Driver_IMU.c | 24 +++++++++++++++--------- driver/Driver_IMU.h | 4 ++-- projet-voilier/src/main.c | 33 ++++----------------------------- 3 files changed, 21 insertions(+), 40 deletions(-) diff --git a/driver/Driver_IMU.c b/driver/Driver_IMU.c index ce4bf7c..a08a75d 100644 --- a/driver/Driver_IMU.c +++ b/driver/Driver_IMU.c @@ -5,7 +5,7 @@ const char BW_RATE = 0x2C; const char DATA_FORMAT = 0x31; /*fonction écriture registre IMU*/ -void source_IMU_write_register(char registerAddress, char value) +void driver_IMU_write_register(char registerAddress, char value) { // On s'assure que le Chip Select est bien au niveau bas MySPI_Clear_NSS(); @@ -18,9 +18,8 @@ void source_IMU_write_register(char registerAddress, char value) } /* Fonction d'initialisation*/ -void source_IMU_init(void) +void driver_IMU_init(void) { - int i; /* FSCK = 281kHz, Repos SCK = '1', Front actif = up Gestion /CS logicielle à part, configure les 4 IO - SCK, MOSI : Out Alt push pull @@ -28,22 +27,29 @@ void source_IMU_init(void) - /NSS (/CS) : Out push pull */ MySPI_Init(SPI1); //Paramètrage du registre POWER_CTL - source_IMU_write_register(POWER_CTL, 0x08); + driver_IMU_write_register(POWER_CTL, 0x08); //Paramètrage du registe BW_RATE - source_IMU_write_register(BW_RATE, 0x0A); + driver_IMU_write_register(BW_RATE, 0x0A); //Paramètrage du registre DATA_FORMAT - source_IMU_write_register(BW_RATE, 0x08); //Full resolution, et alignement à droite + driver_IMU_write_register(BW_RATE, 0x08); //Full resolution, et alignement à droite } /* Fonction de lecture des données*/ -void source_IMU_read(char registerAddress, int numBytes, unsigned char * values) +/* +@param *values : Les valeurs x, y, z sont chacune stockée sur 2 octets dans le tableau values + x = values[1]<<8 & value[0]; + y = values[3]<<8 & value[2]; + z = values[5]<<8 & value[4]; +@param numBytes : Le nombre de registre à lire à partir de registerAddress +@param registerAddress : Adresse du premier registre à lire*/ +void driver_IMU_read(char registerAddress, int numBytes, unsigned char * values) { int i; // Pour effectuer une lecture des registre, on doit mettre les bits R/W et MB à 1 char trame = registerAddress | 0x80; trame = trame | 0x40; - // On active le chip select + // On active le chip select (niveau bas) MySPI_Clear_NSS(); // Envoie de la config MySPI_Send(trame); @@ -52,6 +58,6 @@ void source_IMU_read(char registerAddress, int numBytes, unsigned char * values) { values[i] = MySPI_Read(); } - // On met le Chip Select au niveau bas + // On met le Chip Select au niveau haut MySPI_Set_NSS(); } diff --git a/driver/Driver_IMU.h b/driver/Driver_IMU.h index ad7296a..97d5e66 100644 --- a/driver/Driver_IMU.h +++ b/driver/Driver_IMU.h @@ -10,7 +10,7 @@ * @Note -> Fonction a appelé avant l'utilisation du périphérique ************************************************************************************************* */ -void source_IMU_init(void); +void driver_IMU_init(void); /** ************************************************************************************************* @@ -21,6 +21,6 @@ void source_IMU_init(void); * @Note -> ************************************************************************************************* */ -void source_IMU_read(char registerAddress, int numBytes, unsigned char * values); +void driver_IMU_read(char registerAddress, int numBytes, unsigned char * values); #endif diff --git a/projet-voilier/src/main.c b/projet-voilier/src/main.c index e81014d..c3b1e75 100644 --- a/projet-voilier/src/main.c +++ b/projet-voilier/src/main.c @@ -3,41 +3,16 @@ #include "Driver_Timer.h" #include "Driver_ADC.h" #include "MySPI.h" -#include "IMU.h" - -void toto (void) -{ - static uint16_t val; - val = driver_adc_1_read(); -} +#include "Driver_IMU.h" int main() { char DATAX0 = 0x32; unsigned char values[6]; - - /* - MyGPIO_Struct_TypeDef LED; - MyGPIO_Struct_TypeDef GPIO_ADC1; - - LED.GPIO_Pin = 5; - LED.GPIO_Conf = Out_Ppull; - LED.GPIO = GPIOA; - MyGPIO_Init(&LED); - MyGPIO_Set(LED.GPIO, LED.GPIO_Pin); - - GPIO_ADC1.GPIO_Pin = 1; - GPIO_ADC1.GPIO_Conf = In_Analog; - GPIO_ADC1.GPIO = GPIOC; - MyGPIO_Init(&GPIO_ADC1); - - driver_adc_1_init(0x01,&toto); - driver_adc_1_launch_read(); - */ - source_IMU_init(); - + + driver_IMU_init(); while(1) { - source_IMU_read(DATAX0, 6, values); + driver_IMU_read(DATAX0, 6, values); } }