diff options
| author | Hierophect <hierophect@gmail.com> | 2019-09-30 18:05:07 -0400 |
|---|---|---|
| committer | Hierophect <hierophect@gmail.com> | 2019-09-30 18:05:07 -0400 |
| commit | b66700720bb9139cc698e3eef890f77091d53a93 (patch) | |
| tree | 33653660a76ccdaabb03480761db2c87fb512556 | |
| parent | 1f90cffc896b84cdc571aef88dfe09655471adfe (diff) | |
improve error readability
| -rw-r--r-- | ports/stm32f4/common-hal/busio/SPI.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/ports/stm32f4/common-hal/busio/SPI.c b/ports/stm32f4/common-hal/busio/SPI.c index d64ec542a..50b15978c 100644 --- a/ports/stm32f4/common-hal/busio/SPI.c +++ b/ports/stm32f4/common-hal/busio/SPI.c @@ -89,6 +89,7 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, uint8_t mosi_len = sizeof(mcu_spi_mosi_list)/sizeof(*mcu_spi_mosi_list); uint8_t miso_len = sizeof(mcu_spi_miso_list)/sizeof(*mcu_spi_miso_list); + bool spi_taken = false; //sck for(uint i=0; i<sck_len;i++) { if (mcu_spi_sck_list[i].pin == sck) { @@ -101,7 +102,10 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, && (mcu_spi_sck_list[i].spi_index == mcu_spi_mosi_list[j].spi_index) && (mcu_spi_sck_list[i].spi_index == mcu_spi_miso_list[k].spi_index)) { //keep looking if the SPI is taken, edge case - if(reserved_spi[mcu_spi_sck_list[i].spi_index-1]) continue; + if(reserved_spi[mcu_spi_sck_list[i].spi_index-1]) { + spi_taken = true; + continue; + } //store pins if not self->sck = &mcu_spi_sck_list[j]; self->mosi = &mcu_spi_mosi_list[j]; @@ -118,11 +122,11 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, if(self->sck!=NULL && self->mosi!=NULL && self->miso!=NULL ) { SPIx = mcu_spi_banks[self->sck->spi_index-1]; } else { - mp_raise_RuntimeError(translate("Invalid SPI pin selection")); - } - - if(reserved_spi[self->sck->spi_index-1]) { - mp_raise_RuntimeError(translate("Hardware busy, try alternative pins")); + if (spi_taken) { + mp_raise_RuntimeError(translate("Hardware busy, try alternative pins")); + } else { + mp_raise_RuntimeError(translate("Invalid SPI pin selection")); + } } //Start GPIO for each pin |
