const uint32_t ionum0[24]={
255,//1 | (1<<7),//reset function
0 | (1<<7),//PIO0_1
0 | (1<<7),//PIO0_2
0 | (1<<7),//PIO0_3
0 | (1<<8),//PIO0_4
0 | (1<<8),//PIO0_5
0 | (1<<7),//PIO0_6
0 | (1<<7),//PIO0_7
0 | (1<<7),//PIO0_8
0 | (1<<7),//PIO0_9
255, //1 | (1<<7),//PIO0_10 SWCLK function
1 | (1<<7),//PIO0_11
1 | (1<<7),//PIO0_12
1 | (1<<7),//PIO0_13
1 | (1<<7),//PIO0_14
255,//1 | (1<<7),//PIO0_15 SWDIO function
0 | (1<<7),//PIO0_16
0 | (1<<7),//PIO0_17
0 | (1<<7),//PIO0_18
0 | (1<<7),//PIO0_19
0 | (1<<7),//PIO0_20
0 | (1<<7),//PIO0_21
0 | (1<<7),//PIO0_22
0 | (1<<7),//PIO0_23
};
const uint32_t ionum1[32]={
0 | (1<<7),//PIO1_0
0 | (1<<7),//PIO1_1
0 | (1<<7),//PIO1_2
0 | (1<<7),//PIO1_3
0 | (1<<7),//PIO1_4
0 | (1<<7),//PIO1_5
0 | (1<<7),//PIO1_6
0 | (1<<7),//PIO1_7
0 | (1<<7),//PIO1_8
0 | (1<<7),//PIO1_9
0 | (1<<7),//PIO1_10
0 | (1<<7),//PIO1_11
0 | (1<<7),//PIO1_12
0 | (1<<7),//PIO1_13
0 | (1<<7),//PIO1_14
0 | (1<<7),//PIO1_15
0 | (1<<7),//PIO1_16
0 | (1<<7),//PIO1_17
0 | (1<<7),//PIO1_18
0 | (1<<7),//PIO1_19
0 | (1<<7),//PIO1_20
0 | (1<<7),//PIO1_21
0 | (1<<7),//PIO1_22
0 | (1<<7),//PIO1_23
0 | (1<<7),//PIO1_24
0 | (1<<7),//PIO1_25
0 | (1<<7),//PIO1_26
0 | (1<<7),//PIO1_27
0 | (1<<7),//PIO1_28
0 | (1<<7),//PIO1_29
0 | (1<<7),//PIO1_30
0 | (1<<7),//PIO1_31
};
void io_numInit(uint32_t port0, uint32_t port1)
{
uint32_t pin;
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO);
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_IOCON);
//put all port 0 pin in GPIO function except reset pin. All pin with pull-up disabled
for(pin=0;pin<24;pin++)
{
if(ionum0[pin]!=255) LPC_IOCON->PIO0[pin] = ionum0[pin];
}
//put all port 0 pin in output except GPIO0_17, GPIO0_23, GPIO0_1, GPIO0_0,
LPC_GPIO->DIR[0] = 0xFFFFFF & ~port0;
//put all output LOW
LPC_GPIO->PIN[0] = 0;
//put all port 1 pin in GPIO function, output LOW, All pin with pull-up disabled
for(pin=0;pin<32;pin++)
{
if(ionum1[pin]!=255) LPC_IOCON->PIO1[pin] = ionum1[pin];
}
LPC_GPIO->DIR[1] = 0xFFFFFFFF & ~port1;
//put all output LOW
LPC_GPIO->PIN[1] = 0;
}
|