lpc_peripherals.h File Reference

This file provides LPC peripheral numbers according to LPC17xx datasheet. More...

#include <stdbool.h>
Include dependency graph for lpc_peripherals.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  lpc_pconp_t {
  pconp_timer0 = 1, pconp_timer1 = 2, pconp_uart0 = 3, pconp_uart1 = 4,
  pconp_pwm1 = 6, pconp_i2c0 = 7, pconp_spi = 8, pconp_rtc = 9,
  pconp_ssp1 = 10, pconp_adc = 12, pconp_can1 = 13, pconp_can2 = 14,
  pconp_gpio = 15, pconp_rit = 16, pconp_mcpwm = 17, pconp_qei = 18,
  pconp_i2c1 = 19, pconp_ssp0 = 21, pconp_timer2 = 22, pconp_timer3 = 23,
  pconp_uart2 = 24, pconp_uart3 = 25, pconp_i2c2 = 26, pconp_i2s = 27,
  pconp_gpdma = 29, pconp_enet = 30, pconp_usb = 31
}
 This enumeration matches the PCONP register numbers for peripherals. More...
 
enum  lpc_pclk_t {
  pclk_watchdog = 0, pclk_timer0 = 1, pclk_timer1 = 2, pclk_uart0 = 3,
  pclk_uart1 = 4, pclk_pwm1 = 6, pclk_i2c0 = 7, pclk_spi = 8,
  pclk_ssp1 = 10, pclk_dac = 11, pclk_adc = 12, pclk_can1 = 13,
  pclk_can2 = 14, pclk_can_flt = 15, pclk_qei = 16, pclk_gpioint = 17,
  pclk_pcb = 18, pclk_i2c1 = 19, pclk_ssp0 = 21, pclk_timer2 = 22,
  pclk_timer3 = 23, pclk_uart2 = 24, pclk_uart3 = 25, pclk_i2c2 = 26,
  pclk_rit = 29, pclk_syscon = 30, pclk_mc = 31
}
 This enumeration matches peripheral clock registers (PCLKSEL0 and PCLKSEL1) More...
 
enum  clkdiv_t { clkdiv_4 = 0, clkdiv_1 = 1, clkdiv_2 = 2, clkdiv_8 = 3 }
 This enumeration matches the clock divider. More...
 

Functions

void lpc_pconp (lpc_pconp_t peripheral, bool on)
 
void lpc_pclk (lpc_pclk_t peripheral, clkdiv_t divider)
 

Detailed Description

This file provides LPC peripheral numbers according to LPC17xx datasheet.

DO NOT INCLUDE THIS FILE DIRECTLY. IT IS AUTOMATICALLY INCLUDED WHEN YOU INCLUDE LPC17xx.h

Enumeration Type Documentation

enum clkdiv_t

This enumeration matches the clock divider.

Enumerator
clkdiv_4 
clkdiv_1 
clkdiv_2 
clkdiv_8 
enum lpc_pclk_t

This enumeration matches peripheral clock registers (PCLKSEL0 and PCLKSEL1)

Enumerator
pclk_watchdog 
pclk_timer0 
pclk_timer1 
pclk_uart0 
pclk_uart1 
pclk_pwm1 
pclk_i2c0 
pclk_spi 
pclk_ssp1 
pclk_dac 
pclk_adc 
pclk_can1 
pclk_can2 
pclk_can_flt 
pclk_qei 
pclk_gpioint 
pclk_pcb 
pclk_i2c1 
pclk_ssp0 
pclk_timer2 
pclk_timer3 
pclk_uart2 
pclk_uart3 
pclk_i2c2 
pclk_rit 
pclk_syscon 
pclk_mc 

This enumeration matches the PCONP register numbers for peripherals.

Enumerator
pconp_timer0 
pconp_timer1 
pconp_uart0 
pconp_uart1 
pconp_pwm1 
pconp_i2c0 
pconp_spi 
pconp_rtc 
pconp_ssp1 
pconp_adc 
pconp_can1 
pconp_can2 
pconp_gpio 
pconp_rit 
pconp_mcpwm 
pconp_qei 
pconp_i2c1 
pconp_ssp0 
pconp_timer2 
pconp_timer3 
pconp_uart2 
pconp_uart3 
pconp_i2c2 
pconp_i2s 
pconp_gpdma 
pconp_enet 
pconp_usb 

Function Documentation

void lpc_pclk ( lpc_pclk_t  peripheral,
clkdiv_t  divider 
)

Sets the peripheral clock divider.

Parameters
peripheralThe peripheral type.
See also
lpc_pclk_t
Parameters
dividerThe divider type
Note
The reset value for all peripherals is clkdiv_4

This is a quick and dirty trick to use uint64_t such that we don't have to use if/else statements to pick either PCLKSEL0 or PCLKSEL1 register.

void lpc_pconp ( lpc_pconp_t  peripheral,
bool  on 
)

Powers ON or powers OFF the peripheral

Parameters
peripheralThe peripheral type.
See also
lpc_pconp_t
Parameters
onIf true, peripheral is turned on, otherwise turned off