Andrew Boyson / oldheating

Dependencies:   net 1-wire lpc1768 crypto clock web fram log

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers periphs.c Source File

periphs.c

00001 #define PCONP       (*((volatile unsigned *) 0x400FC0C4))
00002 #define PCLKSEL0    (*((volatile unsigned *) 0x400FC1A8))
00003 #define PCLKSEL1    (*((volatile unsigned *) 0x400FC1AC))
00004 #define PINSEL0     (*((volatile unsigned *) 0x4002C000))
00005 #define PINSEL1     (*((volatile unsigned *) 0x4002C004))
00006 #define PINSEL2     (*((volatile unsigned *) 0x4002C008))
00007 #define PINSEL3     (*((volatile unsigned *) 0x4002C00C))
00008 #define PINSEL4     (*((volatile unsigned *) 0x4002C010))
00009 #define PINMODE4    (*((volatile unsigned *) 0x4002C050))
00010 #define PINMODE_OD2 (*((volatile unsigned *) 0x4002C070))
00011 
00012 void PeriphsInit (void)
00013 {
00014     //Peripheral power - Table 46
00015     PCONP  = 0;
00016     PCONP |= 1 <<  1; //TIMER0
00017     PCONP |= 1 <<  2; //TIMER1
00018     PCONP |= 1 <<  3; //UART0
00019     PCONP |= 1 <<  6; //PWM1
00020     PCONP |= 1 <<  9; //RTC
00021     PCONP |= 1 << 10; //SSP1
00022     PCONP |= 1 << 15; //GPIO
00023     PCONP |= 1 << 16; //RIT
00024     PCONP |= 1 << 30; //ENET                 
00025 
00026     //Peripheral clock must be selected before PLL0 enabling and connecting; default is 00 divide by 4; need 01 to have divide by 1
00027     PCLKSEL0  = 0;
00028     PCLKSEL0 |= 1 <<  2;  //TIM0
00029     PCLKSEL0 |= 1 <<  4;  //TIM1
00030     PCLKSEL0 |= 1 <<  6;  //UART0
00031     PCLKSEL0 |= 1 << 12;  //PWM1
00032     PCLKSEL0 |= 1 << 20;  //SSP1
00033 
00034     //Pin functions table 80.
00035     PINSEL0  = 0;
00036     PINSEL0 |= 1U <<  4; //P0.02 01 TXD0  UART0
00037     PINSEL0 |= 1U <<  6; //P0.03 01 RXD0  UART0
00038     PINSEL0 |= 2U << 14; //P0.07 10 SCK1   SSP1
00039     PINSEL0 |= 2U << 16; //P0.08 10 MISO1  SSP1
00040     PINSEL0 |= 2U << 18; //P0.09 10 MOSI1  SSP1
00041     
00042     PINSEL1  = 0;
00043     
00044     PINSEL2  = 0;
00045     PINSEL2 |= 1U <<  0; //P1.00 01 ENET_TXD0
00046     PINSEL2 |= 1U <<  2; //P1.01 01 ENET_TXD1
00047     PINSEL2 |= 1U <<  8; //P1.04 01 ENET_TX_EN
00048     PINSEL2 |= 1U << 16; //P1.08 01 ENET_CRS
00049     PINSEL2 |= 1U << 18; //P1.09 01 ENET_RXD0
00050     PINSEL2 |= 1U << 20; //P1.10 01 ENET_RXD1
00051     PINSEL2 |= 1U << 28; //P1.14 01 ENET_RX_ER
00052     PINSEL2 |= 1U << 30; //P1.15 01 ENET_REF_CLK
00053     
00054     PINSEL3  = 0;
00055     PINSEL3 |= 1U <<  0; //P1.16 01 ENET_MDC
00056     PINSEL3 |= 1U <<  2; //P1.17 01 ENET_MDIO
00057     
00058     PINSEL4  = 0;
00059     PINSEL4 |= 1U << 0;  //P2.00 01 PWM1.1 --> p26
00060 }