summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHierophect <hierophect@gmail.com>2019-09-30 18:05:07 -0400
committerHierophect <hierophect@gmail.com>2019-09-30 18:05:07 -0400
commitb66700720bb9139cc698e3eef890f77091d53a93 (patch)
tree33653660a76ccdaabb03480761db2c87fb512556
parent1f90cffc896b84cdc571aef88dfe09655471adfe (diff)
improve error readability
-rw-r--r--ports/stm32f4/common-hal/busio/SPI.c16
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