He configurado el comportamiento del acelerómetro LIS302DL con el siguiente código:
void initAccel(void)
{
accelMeterInt.Latch_Request=LIS302DL_INTERRUPTREQUEST_NOTLATCHED;//LIS302DL_INTERRUPTREQUEST_LATCHED;
accelMeterInt.SingleClick_Axes=LIS302DL_CLICKINTERRUPT_XYZ_DISABLE;
accelMeterInt.DoubleClick_Axes=LIS302DL_DOUBLECLICKINTERRUPT_XYZ_DISABLE;
accelMeter.Power_Mode=LIS302DL_LOWPOWERMODE_ACTIVE;
accelMeter.Output_DataRate=LIS302DL_DATARATE_400;
accelMeter.Axes_Enable=LIS302DL_X_ENABLE|LIS302DL_Y_ENABLE|LIS302DL_Z_ENABLE;
accelMeter.Full_Scale=LIS302DL_FULLSCALE_9_2;
accelMeter.Self_Test=LIS302DL_SELFTEST_NORMAL;
LIS302DL_InterruptConfig(&accelMeterInt);
LIS302DL_Init(&accelMeter);
delay(ACCEL_METER_DELAY);
} // init Accel
Después de usar este código, emito el comando WHO_AM_I con:
LIS302DL_Read(&ident,
LIS302DL_WHO_AM_I_ADDR,
sizeof(ident));
Ident contiene 0011 1111
después de esta llamada, pero de acuerdo con LIS302DL datasheet , debe contener 00111011
. ¿Hay algo mal / mi código no funciona y si es así, por qué? Estoy utilizando la placa de descubrimiento ST32F4 con el IDE de IAR Embedded Workbench.