Detect lack of pulldown; check for pin in use
This commit is contained in:
parent
e2a4c76a37
commit
cccbbd956d
|
@ -68,10 +68,11 @@ STATIC mp_obj_t touchio_touchin_make_new(const mp_obj_type_t *type,
|
||||||
// 1st argument is the pin
|
// 1st argument is the pin
|
||||||
mp_obj_t pin_obj = args[0];
|
mp_obj_t pin_obj = args[0];
|
||||||
assert_pin(pin_obj, false);
|
assert_pin(pin_obj, false);
|
||||||
|
const mcu_pin_obj_t *pin = MP_OBJ_TO_PTR(pin_obj);
|
||||||
|
assert_pin_free(pin);
|
||||||
|
|
||||||
touchio_touchin_obj_t *self = m_new_obj(touchio_touchin_obj_t);
|
touchio_touchin_obj_t *self = m_new_obj(touchio_touchin_obj_t);
|
||||||
self->base.type = &touchio_touchin_type;
|
self->base.type = &touchio_touchin_type;
|
||||||
const mcu_pin_obj_t *pin = MP_OBJ_TO_PTR(pin_obj);
|
|
||||||
common_hal_touchio_touchin_construct(self, pin);
|
common_hal_touchio_touchin_construct(self, pin);
|
||||||
|
|
||||||
return (mp_obj_t) self;
|
return (mp_obj_t) self;
|
||||||
|
|
|
@ -67,12 +67,17 @@ static uint16_t get_raw_reading(touchio_touchin_obj_t *self) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_touchio_touchin_construct(touchio_touchin_obj_t* self, const mcu_pin_obj_t *pin) {
|
void common_hal_touchio_touchin_construct(touchio_touchin_obj_t* self, const mcu_pin_obj_t *pin) {
|
||||||
|
claim_pin(pin);
|
||||||
self->digitalinout = m_new_obj(digitalio_digitalinout_obj_t);
|
self->digitalinout = m_new_obj(digitalio_digitalinout_obj_t);
|
||||||
self->digitalinout->base.type = &digitalio_digitalinout_type;
|
self->digitalinout->base.type = &digitalio_digitalinout_type;
|
||||||
|
|
||||||
common_hal_digitalio_digitalinout_construct(self->digitalinout, pin);
|
common_hal_digitalio_digitalinout_construct(self->digitalinout, pin);
|
||||||
|
|
||||||
self->threshold = get_raw_reading(self) * 1.05 + 100;
|
uint16_t raw_reading = get_raw_reading(self);
|
||||||
|
if (raw_reading == TIMEOUT_TICKS) {
|
||||||
|
mp_raise_ValueError(translate("No pulldown on pin; 1Mohm recommended"));
|
||||||
|
}
|
||||||
|
self->threshold = raw_reading * 1.05 + 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool common_hal_touchio_touchin_deinited(touchio_touchin_obj_t* self) {
|
bool common_hal_touchio_touchin_deinited(touchio_touchin_obj_t* self) {
|
||||||
|
|
Loading…
Reference in New Issue