Ajout de commentaire pour la fonction

driver_IMU_read. Modification des noms des fonctions et modification du main.c pour plus de clarté.
This commit is contained in:
Manon Sanchez 2023-04-07 13:11:21 +02:00
parent c930991ccb
commit 12752ff03b
3 changed files with 21 additions and 40 deletions

View file

@ -5,7 +5,7 @@ const char BW_RATE = 0x2C;
const char DATA_FORMAT = 0x31; const char DATA_FORMAT = 0x31;
/*fonction écriture registre IMU*/ /*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 // On s'assure que le Chip Select est bien au niveau bas
MySPI_Clear_NSS(); MySPI_Clear_NSS();
@ -18,9 +18,8 @@ void source_IMU_write_register(char registerAddress, char value)
} }
/* Fonction d'initialisation*/ /* Fonction d'initialisation*/
void source_IMU_init(void) void driver_IMU_init(void)
{ {
int i;
/* FSCK = 281kHz, Repos SCK = '1', Front actif = up /* FSCK = 281kHz, Repos SCK = '1', Front actif = up
Gestion /CS logicielle à part, configure les 4 IO Gestion /CS logicielle à part, configure les 4 IO
- SCK, MOSI : Out Alt push pull - SCK, MOSI : Out Alt push pull
@ -28,22 +27,29 @@ void source_IMU_init(void)
- /NSS (/CS) : Out push pull */ - /NSS (/CS) : Out push pull */
MySPI_Init(SPI1); MySPI_Init(SPI1);
//Paramètrage du registre POWER_CTL //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 //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 //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*/ /* 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; int i;
// Pour effectuer une lecture des registre, on doit mettre les bits R/W et MB à 1 // Pour effectuer une lecture des registre, on doit mettre les bits R/W et MB à 1
char trame = registerAddress | 0x80; char trame = registerAddress | 0x80;
trame = trame | 0x40; trame = trame | 0x40;
// On active le chip select // On active le chip select (niveau bas)
MySPI_Clear_NSS(); MySPI_Clear_NSS();
// Envoie de la config // Envoie de la config
MySPI_Send(trame); MySPI_Send(trame);
@ -52,6 +58,6 @@ void source_IMU_read(char registerAddress, int numBytes, unsigned char * values)
{ {
values[i] = MySPI_Read(); values[i] = MySPI_Read();
} }
// On met le Chip Select au niveau bas // On met le Chip Select au niveau haut
MySPI_Set_NSS(); MySPI_Set_NSS();
} }

View file

@ -10,7 +10,7 @@
* @Note -> Fonction a appelé avant l'utilisation du périphérique * @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 -> * @Note ->
************************************************************************************************* *************************************************************************************************
*/ */
void source_IMU_read(char registerAddress, int numBytes, unsigned char * values); void driver_IMU_read(char registerAddress, int numBytes, unsigned char * values);
#endif #endif

View file

@ -3,41 +3,16 @@
#include "Driver_Timer.h" #include "Driver_Timer.h"
#include "Driver_ADC.h" #include "Driver_ADC.h"
#include "MySPI.h" #include "MySPI.h"
#include "IMU.h" #include "Driver_IMU.h"
void toto (void)
{
static uint16_t val;
val = driver_adc_1_read();
}
int main() { int main() {
char DATAX0 = 0x32; char DATAX0 = 0x32;
unsigned char values[6]; unsigned char values[6];
/* driver_IMU_init();
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();
while(1) while(1)
{ {
source_IMU_read(DATAX0, 6, values); driver_IMU_read(DATAX0, 6, values);
} }
} }