Monitor motorhome leisure battery and provide simple control of habitation
Dependencies: net lpc1768 crypto clock web fram log
lpc1768-this/periphs.c@2:5229cab71d69, 2021-02-10 (annotated)
- Committer:
- andrewboyson
- Date:
- Wed Feb 10 17:26:07 2021 +0000
- Revision:
- 2:5229cab71d69
- Parent:
- 0:b843d647695c
- Child:
- 9:d957af50fdc2
Added pwm.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
andrewboyson | 2:5229cab71d69 | 1 | #define PCONP (*((volatile unsigned *) 0x400FC0C4)) |
andrewboyson | 2:5229cab71d69 | 2 | #define PCLKSEL0 (*((volatile unsigned *) 0x400FC1A8)) |
andrewboyson | 2:5229cab71d69 | 3 | #define PCLKSEL1 (*((volatile unsigned *) 0x400FC1AC)) |
andrewboyson | 2:5229cab71d69 | 4 | #define PINSEL0 (*((volatile unsigned *) 0x4002C000)) |
andrewboyson | 2:5229cab71d69 | 5 | #define PINSEL1 (*((volatile unsigned *) 0x4002C004)) |
andrewboyson | 2:5229cab71d69 | 6 | #define PINSEL2 (*((volatile unsigned *) 0x4002C008)) |
andrewboyson | 2:5229cab71d69 | 7 | #define PINSEL3 (*((volatile unsigned *) 0x4002C00C)) |
andrewboyson | 2:5229cab71d69 | 8 | #define PINSEL4 (*((volatile unsigned *) 0x4002C010)) |
andrewboyson | 2:5229cab71d69 | 9 | #define PINMODE0 (*((volatile unsigned *) 0x4002C040)) |
andrewboyson | 2:5229cab71d69 | 10 | #define PINMODE4 (*((volatile unsigned *) 0x4002C050)) |
andrewboyson | 2:5229cab71d69 | 11 | #define PINMODE_OD0 (*((volatile unsigned *) 0x4002C068)) |
andrewboyson | 2:5229cab71d69 | 12 | #define PINMODE_OD1 (*((volatile unsigned *) 0x4002C06C)) |
andrewboyson | 2:5229cab71d69 | 13 | #define PINMODE_OD2 (*((volatile unsigned *) 0x4002C070)) |
andrewboyson | 0:b843d647695c | 14 | |
andrewboyson | 0:b843d647695c | 15 | void PeriphsInit (void) |
andrewboyson | 0:b843d647695c | 16 | { |
andrewboyson | 0:b843d647695c | 17 | //Peripheral power - Table 46 |
andrewboyson | 0:b843d647695c | 18 | PCONP = 0; |
andrewboyson | 0:b843d647695c | 19 | PCONP |= 1 << 1; //TIMER0 |
andrewboyson | 0:b843d647695c | 20 | PCONP |= 1 << 2; //TIMER1 |
andrewboyson | 0:b843d647695c | 21 | PCONP |= 1 << 3; //UART0 |
andrewboyson | 2:5229cab71d69 | 22 | PCONP |= 1 << 6; //PWM1 |
andrewboyson | 0:b843d647695c | 23 | PCONP |= 1 << 9; //RTC |
andrewboyson | 0:b843d647695c | 24 | PCONP |= 1 << 10; //SSP1 |
andrewboyson | 0:b843d647695c | 25 | PCONP |= 1 << 15; //GPIO |
andrewboyson | 0:b843d647695c | 26 | PCONP |= 1 << 16; //RIT |
andrewboyson | 2:5229cab71d69 | 27 | PCONP |= 1 << 19; //I2C1 |
andrewboyson | 0:b843d647695c | 28 | PCONP |= 1 << 30; //ENET |
andrewboyson | 0:b843d647695c | 29 | |
andrewboyson | 0:b843d647695c | 30 | //Peripheral clock must be selected before PLL0 enabling and connecting; default is 00 divide by 4; need 01 to have divide by 1 |
andrewboyson | 0:b843d647695c | 31 | PCLKSEL0 = 0; |
andrewboyson | 0:b843d647695c | 32 | PCLKSEL0 |= 1 << 2; //TIM0 |
andrewboyson | 0:b843d647695c | 33 | PCLKSEL0 |= 1 << 4; //TIM1 |
andrewboyson | 0:b843d647695c | 34 | PCLKSEL0 |= 1 << 6; //UART0 |
andrewboyson | 2:5229cab71d69 | 35 | PCLKSEL0 |= 1 << 12; //PWM1 |
andrewboyson | 0:b843d647695c | 36 | PCLKSEL0 |= 1 << 20; //SSP1 |
andrewboyson | 2:5229cab71d69 | 37 | |
andrewboyson | 2:5229cab71d69 | 38 | PCLKSEL1 = 0; |
andrewboyson | 2:5229cab71d69 | 39 | PCLKSEL1 |= 1 << 20; //I2C1 |
andrewboyson | 0:b843d647695c | 40 | |
andrewboyson | 0:b843d647695c | 41 | //Pin functions table 80. |
andrewboyson | 0:b843d647695c | 42 | PINSEL0 = 0; |
andrewboyson | 2:5229cab71d69 | 43 | PINSEL0 |= 3U << 0; //P0.00 11 SDA1 I2C1 |
andrewboyson | 2:5229cab71d69 | 44 | PINSEL0 |= 3U << 2; //P0.01 11 SCL1 I2C1 |
andrewboyson | 0:b843d647695c | 45 | PINSEL0 |= 1U << 4; //P0.02 01 TXD0 UART0 |
andrewboyson | 0:b843d647695c | 46 | PINSEL0 |= 1U << 6; //P0.03 01 RXD0 UART0 |
andrewboyson | 0:b843d647695c | 47 | PINSEL0 |= 2U << 14; //P0.07 10 SCK1 SSP1 |
andrewboyson | 0:b843d647695c | 48 | PINSEL0 |= 2U << 16; //P0.08 10 MISO1 SSP1 |
andrewboyson | 0:b843d647695c | 49 | PINSEL0 |= 2U << 18; //P0.09 10 MOSI1 SSP1 |
andrewboyson | 0:b843d647695c | 50 | |
andrewboyson | 0:b843d647695c | 51 | PINSEL1 = 0; |
andrewboyson | 2:5229cab71d69 | 52 | |
andrewboyson | 0:b843d647695c | 53 | PINSEL2 = 0; |
andrewboyson | 0:b843d647695c | 54 | PINSEL2 |= 1U << 0; //P1.00 01 ENET_TXD0 |
andrewboyson | 0:b843d647695c | 55 | PINSEL2 |= 1U << 2; //P1.01 01 ENET_TXD1 |
andrewboyson | 0:b843d647695c | 56 | PINSEL2 |= 1U << 8; //P1.04 01 ENET_TX_EN |
andrewboyson | 0:b843d647695c | 57 | PINSEL2 |= 1U << 16; //P1.08 01 ENET_CRS |
andrewboyson | 0:b843d647695c | 58 | PINSEL2 |= 1U << 18; //P1.09 01 ENET_RXD0 |
andrewboyson | 0:b843d647695c | 59 | PINSEL2 |= 1U << 20; //P1.10 01 ENET_RXD1 |
andrewboyson | 0:b843d647695c | 60 | PINSEL2 |= 1U << 28; //P1.14 01 ENET_RX_ER |
andrewboyson | 0:b843d647695c | 61 | PINSEL2 |= 1U << 30; //P1.15 01 ENET_REF_CLK |
andrewboyson | 0:b843d647695c | 62 | |
andrewboyson | 0:b843d647695c | 63 | PINSEL3 = 0; |
andrewboyson | 0:b843d647695c | 64 | PINSEL3 |= 1U << 0; //P1.16 01 ENET_MDC |
andrewboyson | 0:b843d647695c | 65 | PINSEL3 |= 1U << 2; //P1.17 01 ENET_MDIO |
andrewboyson | 2:5229cab71d69 | 66 | //PINSEL3 |= 2U << 4; //P1.18 10 PWM1.1 |
andrewboyson | 2:5229cab71d69 | 67 | |
andrewboyson | 2:5229cab71d69 | 68 | PINSEL4 = 0; |
andrewboyson | 2:5229cab71d69 | 69 | PINSEL4 |= 1U << 0; //P2.00 01 PWM1.1 |
andrewboyson | 2:5229cab71d69 | 70 | |
andrewboyson | 2:5229cab71d69 | 71 | |
andrewboyson | 2:5229cab71d69 | 72 | PINMODE0 = 0; |
andrewboyson | 2:5229cab71d69 | 73 | PINMODE0 |= 2U << 0; //P0.00 10 SDA1 I2C1 Neither pull up nor pull down |
andrewboyson | 2:5229cab71d69 | 74 | PINMODE0 |= 2U << 2; //P0.01 10 SCL1 I2C1 Neither pull up nor pull down |
andrewboyson | 2:5229cab71d69 | 75 | |
andrewboyson | 2:5229cab71d69 | 76 | PINMODE_OD0 = 0; |
andrewboyson | 2:5229cab71d69 | 77 | PINMODE_OD0 |= 1 << 0; //P0.00 10 SDA1 I2C1 Open drain mode |
andrewboyson | 2:5229cab71d69 | 78 | PINMODE_OD0 |= 1 << 1; //P0.01 10 SCL1 I2C1 Open drain mode |
andrewboyson | 2:5229cab71d69 | 79 | |
andrewboyson | 2:5229cab71d69 | 80 | |
andrewboyson | 2:5229cab71d69 | 81 | PINMODE4 = 0; |
andrewboyson | 2:5229cab71d69 | 82 | //PINMODE4 |= 2U << 0; //P2.00 10 PWM1.1 p26 Neither pull up nor pull down |
andrewboyson | 2:5229cab71d69 | 83 | |
andrewboyson | 2:5229cab71d69 | 84 | PINMODE_OD2 = 0; |
andrewboyson | 2:5229cab71d69 | 85 | //PINMODE_OD2 |= 1 << 0; //P2.00 10 PWM1.1 p26 Open drain mode |
andrewboyson | 0:b843d647695c | 86 | } |