From b6eef929807bd9bacd5f84ff5faab60c2c1b8850 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 11 Jun 2012 12:45:16 +0200 Subject: [PATCH] Small refactoring to digitalWrite --- .../arduino/sam/cores/arduino/wiring_digital.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/hardware/arduino/sam/cores/arduino/wiring_digital.c b/hardware/arduino/sam/cores/arduino/wiring_digital.c index bbd940d2e..5d81034be 100644 --- a/hardware/arduino/sam/cores/arduino/wiring_digital.c +++ b/hardware/arduino/sam/cores/arduino/wiring_digital.c @@ -34,16 +34,25 @@ extern void pinMode( uint32_t ulPin, uint32_t ulMode ) case INPUT: /* Enable peripheral for clocking input */ pmc_enable_periph_clk( g_APinDescription[ulPin].ulPeripheralId ) ; - PIO_Configure( g_APinDescription[ulPin].pPort, PIO_INPUT, g_APinDescription[ulPin].ulPin, 0 ) ; + PIO_Configure( + g_APinDescription[ulPin].pPort, + PIO_INPUT, + g_APinDescription[ulPin].ulPin, + 0 ) ; break ; case OUTPUT: - /* if all pins are output, disable PIO Controller clocking, reduce power consomption */ + PIO_Configure( + g_APinDescription[ulPin].pPort, + PIO_OUTPUT_1, + g_APinDescription[ulPin].ulPin, + g_APinDescription[ulPin].ulPinConfiguration ) ; + + /* if all pins are output, disable PIO Controller clocking, reduce power consumption */ if ( g_APinDescription[ulPin].pPort->PIO_OSR == 0xffffffff ) { pmc_disable_periph_clk( g_APinDescription[ulPin].ulPeripheralId ) ; } - PIO_Configure( g_APinDescription[ulPin].pPort, PIO_OUTPUT_1, g_APinDescription[ulPin].ulPin, g_APinDescription[ulPin].ulPinConfiguration ) ; break ; default: