Skip to content

Commit 1decd11

Browse files
committed
Do not open the same ADC device again
1 parent bd6c7c5 commit 1decd11

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

ports/cxd56/common-hal/analogio/AnalogIn.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,11 @@ void common_hal_analogio_analogin_construct(analogio_analogin_obj_t *self, const
6868
mp_raise_ValueError(translate("Pin does not have ADC capabilities"));
6969
}
7070

71-
analogin_dev[self->number].fd = open(analogin_dev[pin->number].devpath, O_RDONLY);
7271
if (analogin_dev[self->number].fd < 0) {
73-
mp_raise_ValueError(translate("Pin does not have ADC capabilities"));
72+
analogin_dev[self->number].fd = open(analogin_dev[self->number].devpath, O_RDONLY);
73+
if (analogin_dev[self->number].fd < 0) {
74+
mp_raise_ValueError(translate("Pin does not have ADC capabilities"));
75+
}
7476
}
7577

7678
// SCU FIFO overwrite
@@ -99,7 +101,7 @@ void common_hal_analogio_analogin_deinit(analogio_analogin_obj_t *self) {
99101
}
100102

101103
bool common_hal_analogio_analogin_deinited(analogio_analogin_obj_t *self) {
102-
return self->pin == mp_const_none;
104+
return analogin_dev[self->number].fd < 0;
103105
}
104106

105107
uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) {

ports/cxd56/common-hal/analogio/AnalogIn.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
typedef struct {
3535
mp_obj_base_t base;
3636
const mcu_pin_obj_t *pin;
37-
uint8_t number;
37+
int8_t number;
3838
} analogio_analogin_obj_t;
3939

4040
void analogin_reset(void);

0 commit comments

Comments
 (0)