diff options
| author | Kamil Tomaszewski <kamil.tomaszewski@sony.com> | 2019-10-18 12:38:39 +0200 |
|---|---|---|
| committer | Kamil Tomaszewski <kamil.tomaszewski@sony.com> | 2019-10-18 12:38:39 +0200 |
| commit | 1decd111d5fc901ca641fb5abc0cec1505b8c485 (patch) | |
| tree | f82713e12da291072c4cd629eec9158816172fb3 /ports | |
| parent | bd6c7c5546a16bed74c19ef615728b5e9032a4ad (diff) | |
Do not open the same ADC device again
Diffstat (limited to 'ports')
| -rw-r--r-- | ports/cxd56/common-hal/analogio/AnalogIn.c | 8 | ||||
| -rw-r--r-- | ports/cxd56/common-hal/analogio/AnalogIn.h | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/ports/cxd56/common-hal/analogio/AnalogIn.c b/ports/cxd56/common-hal/analogio/AnalogIn.c index ebe291582..e2ca5e4a4 100644 --- a/ports/cxd56/common-hal/analogio/AnalogIn.c +++ b/ports/cxd56/common-hal/analogio/AnalogIn.c @@ -68,9 +68,11 @@ void common_hal_analogio_analogin_construct(analogio_analogin_obj_t *self, const mp_raise_ValueError(translate("Pin does not have ADC capabilities")); } - analogin_dev[self->number].fd = open(analogin_dev[pin->number].devpath, O_RDONLY); if (analogin_dev[self->number].fd < 0) { - mp_raise_ValueError(translate("Pin does not have ADC capabilities")); + analogin_dev[self->number].fd = open(analogin_dev[self->number].devpath, O_RDONLY); + if (analogin_dev[self->number].fd < 0) { + mp_raise_ValueError(translate("Pin does not have ADC capabilities")); + } } // SCU FIFO overwrite @@ -99,7 +101,7 @@ void common_hal_analogio_analogin_deinit(analogio_analogin_obj_t *self) { } bool common_hal_analogio_analogin_deinited(analogio_analogin_obj_t *self) { - return self->pin == mp_const_none; + return analogin_dev[self->number].fd < 0; } uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) { diff --git a/ports/cxd56/common-hal/analogio/AnalogIn.h b/ports/cxd56/common-hal/analogio/AnalogIn.h index 4e8b41e52..9cf73003f 100644 --- a/ports/cxd56/common-hal/analogio/AnalogIn.h +++ b/ports/cxd56/common-hal/analogio/AnalogIn.h @@ -34,7 +34,7 @@ typedef struct { mp_obj_base_t base; const mcu_pin_obj_t *pin; - uint8_t number; + int8_t number; } analogio_analogin_obj_t; void analogin_reset(void); |
