stmhal/accel: Raise an exception if the accel couldn't be initialised.
On PYBLITEv1.0 there is no accelerometer and in this case the Accel() constructor should not silently succeed.
This commit is contained in:
parent
b3bc2ee1b9
commit
12c61ddddd
@ -89,15 +89,17 @@ STATIC void accel_start(void) {
|
|||||||
|
|
||||||
HAL_StatusTypeDef status;
|
HAL_StatusTypeDef status;
|
||||||
|
|
||||||
//printf("IsDeviceReady\n");
|
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
status = HAL_I2C_IsDeviceReady(&I2CHandle1, MMA_ADDR, 10, 200);
|
status = HAL_I2C_IsDeviceReady(&I2CHandle1, MMA_ADDR, 10, 200);
|
||||||
//printf(" got %d\n", status);
|
|
||||||
if (status == HAL_OK) {
|
if (status == HAL_OK) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (status != HAL_OK) {
|
||||||
|
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_OSError, "accelerometer not found"));
|
||||||
|
}
|
||||||
|
|
||||||
// set MMA to active mode
|
// set MMA to active mode
|
||||||
uint8_t data[1] = {1}; // active mode
|
uint8_t data[1] = {1}; // active mode
|
||||||
status = HAL_I2C_Mem_Write(&I2CHandle1, MMA_ADDR, MMA_REG_MODE, I2C_MEMADD_SIZE_8BIT, data, 1, 200);
|
status = HAL_I2C_Mem_Write(&I2CHandle1, MMA_ADDR, MMA_REG_MODE, I2C_MEMADD_SIZE_8BIT, data, 1, 200);
|
||||||
|
Loading…
Reference in New Issue
Block a user