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;
|
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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue