Hi,
Regarding the pin configuration, I suggest you write the peripheral register directly.
This is an example to configure the pin as PWM function.
Secondly, you can call the SDK api function for example:
void BOARD_InitPins(void)
{
/* GPIOC IPBus Clock Enable: The peripheral is clocked. */
CLOCK_EnableClock(kCLOCK_GPIOC);
/* GPIOD IPBus Clock Enable: The peripheral is clocked. */
CLOCK_EnableClock(kCLOCK_GPIOD);
/* Enable peripheral functionality on pin GPIOC0 (pin 3) */
GPIO_PinSetPeripheralMode(BOARD_EXTAL_GPIO, BOARD_EXTAL_PIN_MASK, kGPIO_ModePeripheral);
/* Peripheral functionality on pin GPIOC0 (pin 3) */
GPIO_PinSetPeripheralMux(kGPIO_Peri_C0_EXTAL);
/* Enable peripheral functionality on pin GPIOC1 (pin 4) */
GPIO_PinSetPeripheralMode(BOARD_XTAL_GPIO, BOARD_XTAL_PIN_MASK, kGPIO_ModePeripheral);
/* Enable peripheral functionality on pin GPIOD5 (pin 10) */
GPIO_PinSetPeripheralMode(BOARD_RXD_BDM_GPIO, BOARD_RXD_BDM_PIN_MASK, kGPIO_ModePeripheral);
/* Peripheral functionality on pin GPIOD5 (pin 10) */
GPIO_PinSetPeripheralMux(kGPIO_Peri_D5_RXD2);
/* Enable peripheral functionality on pin GPIOD6 (pin 9) */
GPIO_PinSetPeripheralMode(BOARD_TXD_BDM_GPIO, BOARD_TXD_BDM_PIN_MASK, kGPIO_ModePeripheral);
/* Peripheral functionality on pin GPIOD6 (pin 9) */
GPIO_PinSetPeripheralMux(kGPIO_Peri_D6_TXD2);
}
void PWMPinAssignment(void)
{
//enable gated clock for GPIOE and GPIUOG port
SIM->PCE0|=1<<2|1<<0;
GPIOE->PER|=0x3F;
GPIOG->PER|=1<<5;
//clear E0/E1/E2/E3/E4/E5 bits
SIM->GPSEL&=~(0xFFF);
//set up the G5 as 2b'01
SIM->GPSGL&=~(0xC00);
SIM->GPSGL|=1<<10;
}
//use GPIOG6 as GPIO output signal, which can be a PWM fault signal
//GPIOG6 pin pin11 of J4
void GpioG6_GPIOOUTPUT_Init(void)
{
//enable GPIOG port clock
SIM->PCE0|=1<<0;
//clear the GPIOG6 bit in PER reg
GPIOG->PER&=~(0x40);
GPIOG->DDR|=1<<6;
GPIOG->DR=GPIOG->DR^0x40;
__asm(nop);
GPIOG->DR=GPIOG->DR^0x40;
}
//the PIT0 cycle time is 0.5s
void PIT0_Init(void)
{
//enable PIT0 gated clock
SIM->PCE2|=1<<3;
//PIT0 prescaler is 32768, the PIT0 cycl;e time is (100 000 000/32768)=3051
PIT0->CTRL=0x0F<<3;
PIT0->MOD=1525;
PIT0->CTRL|=0x03;
INTC->IPR10|=3<<12;
}
#pragma interrupt on
void PIT0_ISR(void)
{
//clear the flag of PIT0
PIT0->CTRL&=~(0x01<<2);
//toggle led0
__asm(nop);
GPIOG->DR=GPIOG->DR^0x40;
}
#pragma interrupt off
Hope it can help you
BR
XiangJun Rong