diff --git a/cores/arduino/wiring_digital.c b/cores/arduino/wiring_digital.c index e123c7f85f25dfdd4133600592c2d9094a0ebe03..38d5d23ee85a71560f3fbdda20f5aedbaf065dec 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 ;