El tema es que hay que diferenciar entre los números en el nombre del pin y los números en el gpio que es, en el caso que tenés vos es:
Nombre del pin: P6_1
Configurando este pin con la Función del pin: FUNC0 corresponde al GPIO3[0]
Entonces la configuación es:
pinNamePort = 6;
pinNamePin = 1;
func = FUNC0;
gpioPort = 3;
gpioPin = 0;
// Input
Chip_SCU_PinMux(
pinNamePort,
pinNamePin,
SCU_MODE_INACT | SCU_MODE_INBUFF_EN | SCU_MODE_ZIF_DIS,
func
);
// INPUT con PULLUP
Chip_SCU_PinMux(
pinNamePort,
pinNamePin,
SCU_MODE_PULLUP | SCU_MODE_INBUFF_EN | SCU_MODE_ZIF_DIS,
func
);
// INPUT con PULLDOWN:
Chip_SCU_PinMux(
pinNamePort,
pinNamePin,
SCU_MODE_PULLDOWN | SCU_MODE_INBUFF_EN | SCU_MODE_ZIF_DIS,
func
);
// INPUT con PULLUP y PULLDOWN:
Chip_SCU_PinMux(
pinNamePort,
pinNamePin,
SCU_MODE_REPEATER | SCU_MODE_INBUFF_EN | SCU_MODE_ZIF_DIS,
func
);
// OUTPUT:
Chip_SCU_PinMux(
pinNamePort,
pinNamePin,
SCU_MODE_INACT | SCU_MODE_ZIF_DIS,
func
);
// Luego de elegir una de las de arriba para las 3 primeras va:
Chip_GPIO_SetDir( LPC_GPIO_PORT, gpioPort, ( 1 << gpioPin ), INPUT );
// Y si es salida
Chip_GPIO_SetDir( LPC_GPIO_PORT, gpioPort, ( 1 << gpioPin ), OUTPUT );
Con eso está la configuración del pin.
Para leer o escribir:
// Escribir
gpioPort = 3;
gpioPin = 0;
value = 1;
Chip_GPIO_SetPinState( LPC_GPIO_PORT, gpioPort, gpioPin, value);
// Leer
gpioPort = 3;
gpioPin = 0;
value = Chip_GPIO_ReadPortBit( LPC_GPIO_PORT, gpioPort, gpioPin );
Saludos.
Eric.