From e431bf7f91a2350f3cddbbd3baebbcc8e970aca7 Mon Sep 17 00:00:00 2001 From: Sandeep Mistry <s.mistry@arduino.cc> Date: Thu, 21 Jan 2016 14:11:21 -0500 Subject: [PATCH] Enable input on pinMode OUTPUT to support reading back current value via digitalRead --- cores/arduino/wiring_digital.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cores/arduino/wiring_digital.c b/cores/arduino/wiring_digital.c index e123c7f8..38d5d23e 100644 --- a/cores/arduino/wiring_digital.c +++ b/cores/arduino/wiring_digital.c @@ -58,8 +58,10 @@ void pinMode( uint32_t ulPin, uint32_t ulMode ) break ; case OUTPUT: + // enable input, to support reading back values + PORT->Group[g_APinDescription[ulPin].ulPort].PINCFG[g_APinDescription[ulPin].ulPin].bit.INEN = 1 ; + // Set pin to output mode - PORT->Group[g_APinDescription[ulPin].ulPort].PINCFG[g_APinDescription[ulPin].ulPin].reg&=~(uint8_t)(PORT_PINCFG_INEN) ; PORT->Group[g_APinDescription[ulPin].ulPort].DIRSET.reg = (uint32_t)(1<<g_APinDescription[ulPin].ulPin) ; break ; -- GitLab