Monitor motorhome leisure battery and provide simple control of habitation

Dependencies:   net lpc1768 crypto clock web fram log

Committer:
andrewboyson
Date:
Fri Jun 10 18:32:21 2022 +0000
Revision:
10:a97a7cb7aa82
Parent:
9:d957af50fdc2
Corrected amp second count in html

Who changed what in which revision?

UserRevisionLine numberNew 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 9:d957af50fdc2 25 PCONP |= 1 << 14; //PCCAN2
andrewboyson 0:b843d647695c 26 PCONP |= 1 << 15; //GPIO
andrewboyson 0:b843d647695c 27 PCONP |= 1 << 16; //RIT
andrewboyson 2:5229cab71d69 28 PCONP |= 1 << 19; //I2C1
andrewboyson 0:b843d647695c 29 PCONP |= 1 << 30; //ENET
andrewboyson 0:b843d647695c 30
andrewboyson 0:b843d647695c 31 //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 32 PCLKSEL0 = 0;
andrewboyson 0:b843d647695c 33 PCLKSEL0 |= 1 << 2; //TIM0
andrewboyson 0:b843d647695c 34 PCLKSEL0 |= 1 << 4; //TIM1
andrewboyson 0:b843d647695c 35 PCLKSEL0 |= 1 << 6; //UART0
andrewboyson 2:5229cab71d69 36 PCLKSEL0 |= 1 << 12; //PWM1
andrewboyson 0:b843d647695c 37 PCLKSEL0 |= 1 << 20; //SSP1
andrewboyson 2:5229cab71d69 38
andrewboyson 2:5229cab71d69 39 PCLKSEL1 = 0;
andrewboyson 2:5229cab71d69 40 PCLKSEL1 |= 1 << 20; //I2C1
andrewboyson 0:b843d647695c 41
andrewboyson 0:b843d647695c 42 //Pin functions table 80.
andrewboyson 0:b843d647695c 43 PINSEL0 = 0;
andrewboyson 2:5229cab71d69 44 PINSEL0 |= 3U << 0; //P0.00 11 SDA1 I2C1
andrewboyson 2:5229cab71d69 45 PINSEL0 |= 3U << 2; //P0.01 11 SCL1 I2C1
andrewboyson 0:b843d647695c 46 PINSEL0 |= 1U << 4; //P0.02 01 TXD0 UART0
andrewboyson 0:b843d647695c 47 PINSEL0 |= 1U << 6; //P0.03 01 RXD0 UART0
andrewboyson 9:d957af50fdc2 48 PINSEL0 |= 2U << 8; //P0.04 11 RD2 PCCAN2
andrewboyson 9:d957af50fdc2 49 PINSEL0 |= 2U << 10; //P0.05 11 TD2 PCCAN2
andrewboyson 0:b843d647695c 50 PINSEL0 |= 2U << 14; //P0.07 10 SCK1 SSP1
andrewboyson 0:b843d647695c 51 PINSEL0 |= 2U << 16; //P0.08 10 MISO1 SSP1
andrewboyson 0:b843d647695c 52 PINSEL0 |= 2U << 18; //P0.09 10 MOSI1 SSP1
andrewboyson 0:b843d647695c 53
andrewboyson 0:b843d647695c 54 PINSEL1 = 0;
andrewboyson 2:5229cab71d69 55
andrewboyson 0:b843d647695c 56 PINSEL2 = 0;
andrewboyson 0:b843d647695c 57 PINSEL2 |= 1U << 0; //P1.00 01 ENET_TXD0
andrewboyson 0:b843d647695c 58 PINSEL2 |= 1U << 2; //P1.01 01 ENET_TXD1
andrewboyson 0:b843d647695c 59 PINSEL2 |= 1U << 8; //P1.04 01 ENET_TX_EN
andrewboyson 0:b843d647695c 60 PINSEL2 |= 1U << 16; //P1.08 01 ENET_CRS
andrewboyson 0:b843d647695c 61 PINSEL2 |= 1U << 18; //P1.09 01 ENET_RXD0
andrewboyson 0:b843d647695c 62 PINSEL2 |= 1U << 20; //P1.10 01 ENET_RXD1
andrewboyson 0:b843d647695c 63 PINSEL2 |= 1U << 28; //P1.14 01 ENET_RX_ER
andrewboyson 0:b843d647695c 64 PINSEL2 |= 1U << 30; //P1.15 01 ENET_REF_CLK
andrewboyson 0:b843d647695c 65
andrewboyson 0:b843d647695c 66 PINSEL3 = 0;
andrewboyson 0:b843d647695c 67 PINSEL3 |= 1U << 0; //P1.16 01 ENET_MDC
andrewboyson 0:b843d647695c 68 PINSEL3 |= 1U << 2; //P1.17 01 ENET_MDIO
andrewboyson 2:5229cab71d69 69
andrewboyson 2:5229cab71d69 70 PINSEL4 = 0;
andrewboyson 2:5229cab71d69 71 PINSEL4 |= 1U << 0; //P2.00 01 PWM1.1
andrewboyson 2:5229cab71d69 72
andrewboyson 2:5229cab71d69 73 PINMODE0 = 0;
andrewboyson 2:5229cab71d69 74 PINMODE0 |= 2U << 0; //P0.00 10 SDA1 I2C1 Neither pull up nor pull down
andrewboyson 2:5229cab71d69 75 PINMODE0 |= 2U << 2; //P0.01 10 SCL1 I2C1 Neither pull up nor pull down
andrewboyson 2:5229cab71d69 76
andrewboyson 2:5229cab71d69 77 PINMODE_OD0 = 0;
andrewboyson 2:5229cab71d69 78 PINMODE_OD0 |= 1 << 0; //P0.00 10 SDA1 I2C1 Open drain mode
andrewboyson 2:5229cab71d69 79 PINMODE_OD0 |= 1 << 1; //P0.01 10 SCL1 I2C1 Open drain mode
andrewboyson 0:b843d647695c 80 }