#include "stm32f10x.h"\r
#include "i2c.h"\r
\r
#include "stm32f10x.h"\r
#include "i2c.h"\r
\r
+#define LSM_I2C_Speed 400000\r
#define Lsm303dlhcI2CInit() i2c_init(2, LSM_I2C_Speed)\r
#define Lsm303dlhcI2CBufferRead(dest, buffer, address, nb) i2c_get(dest, address, buffer, nb)\r
#define Lsm303dlhcI2CBufferWrite(dest, buffer, address, nb) i2c_set(dest, address, buffer, nb)\r
#define Lsm303dlhcI2CInit() i2c_init(2, LSM_I2C_Speed)\r
#define Lsm303dlhcI2CBufferRead(dest, buffer, address, nb) i2c_get(dest, address, buffer, nb)\r
#define Lsm303dlhcI2CBufferWrite(dest, buffer, address, nb) i2c_set(dest, address, buffer, nb)\r
struct i2cInitDef_t * i2cInitDef = i2cInitDefs + id - 1;
struct i2cInitDef_t * i2cInitDef = i2cInitDefs + id - 1;
+ taskENTER_CRITICAL();
+
while(nb--)
{
if(nb == 0)
while(nb--)
{
if(nb == 0)
}
I2C_AcknowledgeConfig(i2cInitDef->id, ENABLE);
}
I2C_AcknowledgeConfig(i2cInitDef->id, ENABLE);
}
void i2c_write_polling(uint8_t id, uint8_t *buffer, uint8_t nb)
}
void i2c_write_polling(uint8_t id, uint8_t *buffer, uint8_t nb)
#include <stm32f10x.h>
#include <stm32f10x_gpio.h>
#include <stm32f10x.h>
#include <stm32f10x_gpio.h>
-#include <stm32f10x_rcc.h>
-#include <stm32f10x_i2c.h>
-#include <spi.h>
-#include <i2c.h>
#include <L3Gx.h>
#include <LSM303DLHC.h>
#include <L3Gx.h>
#include <LSM303DLHC.h>
#ifdef GYRO
void initGyro()
{
#ifdef GYRO
void initGyro()
{
L3GInit gyrodef;
/* Fill the gyro structure */
L3GInit gyrodef;
/* Fill the gyro structure */
printf("Data update: %02x\n", gyroinfo.xDataUpdate);
printf("Endianness: %02x\n", gyroinfo.xEndianness);
}
printf("Data update: %02x\n", gyroinfo.xDataUpdate);
printf("Endianness: %02x\n", gyroinfo.xEndianness);
}
static void gyroTask(void *p)
{
printf("Start gyro task\n");
static void gyroTask(void *p)
{
printf("Start gyro task\n");
vTaskDelay(1000);
}
free(values);
vTaskDelay(1000);
}
free(values);
#endif
#ifdef ACCELERO
void initAccelero()
{
#endif
#ifdef ACCELERO
void initAccelero()
{
LSMAccInit accelerodef;
/* Fill the gyro structure */
LSMAccInit accelerodef;
/* Fill the gyro structure */
- L3gxReadAngRate(values);
- printf("Gyro: x=%.4f y=%.4f z=%.4f\n", values[0], values[1], values[2]);
Lsm303dlhcAccReadAcc(values);
printf("Accelero: x=%.4f y=%.4f z=%.4f\n", values[0], values[1], values[2]);
vTaskDelay(1000);
Lsm303dlhcAccReadAcc(values);
printf("Accelero: x=%.4f y=%.4f z=%.4f\n", values[0], values[1], values[2]);
vTaskDelay(1000);
#ifdef LEDS
printf("Init led\n");
initLed();
#ifdef LEDS
printf("Init led\n");
initLed();
- printf("Init SPI2\n");
- spi_init(2);
printf("Init Gyro\n");
initGyro();
printf("Get Gyro Information\n");
getGyroInfo();
printf("Init Gyro\n");
initGyro();
printf("Get Gyro Information\n");
getGyroInfo();
-// printf("Start gyroTask\n");
-// xTaskCreate(gyroTask, (const signed char *)NULL, configMINIMAL_STACK_SIZE, (void *)NULL, tskIDLE_PRIORITY, NULL);
+ printf("Start gyroTask\n");
+ xTaskCreate(gyroTask, (const signed char *)NULL, configMINIMAL_STACK_SIZE, (void *)NULL, tskIDLE_PRIORITY, NULL);
- printf("Init I2C2\n");
- i2c_init(2, 400000);
- printf("Get Accelero Information\n");
- getAcceleroInfo();
printf("Init Accelero\n");
initAccelero();
printf("Init Accelero\n");
initAccelero();
+ printf("Get Accelero Information\n");
+ getAcceleroInfo();
printf("Start acceleroTask\n");
xTaskCreate(acceleroTask, (const signed char *)NULL, configMINIMAL_STACK_SIZE, (void *)NULL, tskIDLE_PRIORITY, NULL);
#endif
printf("Start acceleroTask\n");
xTaskCreate(acceleroTask, (const signed char *)NULL, configMINIMAL_STACK_SIZE, (void *)NULL, tskIDLE_PRIORITY, NULL);
#endif