From 8bb363f7c4f537e90659bc98e1a1cd0097424d96 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Mon, 9 Jul 2018 17:18:06 -0400 Subject: must set pull after setting direction with gpio_set_pin routines --- ports/atmel-samd/common-hal/digitalio/DigitalInOut.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ports/atmel-samd/common-hal/digitalio/DigitalInOut.c b/ports/atmel-samd/common-hal/digitalio/DigitalInOut.c index 03bd225b1..c5c8f48e9 100644 --- a/ports/atmel-samd/common-hal/digitalio/DigitalInOut.c +++ b/ports/atmel-samd/common-hal/digitalio/DigitalInOut.c @@ -40,8 +40,9 @@ digitalinout_result_t common_hal_digitalio_digitalinout_construct( claim_pin(pin); self->pin = pin; - gpio_set_pin_pull_mode(pin->pin, GPIO_PULL_OFF); + // Must set pull after setting direction. gpio_set_pin_direction(pin->pin, GPIO_DIRECTION_IN); + gpio_set_pin_pull_mode(pin->pin, GPIO_PULL_OFF); return DIGITALINOUT_OK; } @@ -154,9 +155,9 @@ void common_hal_digitalio_digitalinout_set_pull( default: break; } - // Set pull first to avoid glitches. - gpio_set_pin_pull_mode(self->pin->pin, asf_pull); + // Must set pull after setting direction. gpio_set_pin_direction(self->pin->pin, GPIO_DIRECTION_IN); + gpio_set_pin_pull_mode(self->pin->pin, asf_pull); } digitalio_pull_t common_hal_digitalio_digitalinout_get_pull( -- cgit v1.2.3