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:
parent
c930991ccb
commit
12752ff03b
3 changed files with 21 additions and 40 deletions
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue