36#ifndef _FREERTOS_DRIVERS_NXP_LPC17XX40XXGPIO_HXX_
37#define _FREERTOS_DRIVERS_NXP_LPC17XX40XXGPIO_HXX_
41#include "gpio_17xx_40xx.h"
42#include "iocon_17xx_40xx.h"
52 static constexpr uint8_t
port()
57 static constexpr uint8_t
pin()
62 static void set(
bool value)
64 Chip_GPIO_SetPinState(LPC_GPIO,
port(),
pin(), value);
69 Chip_GPIO_SetPinToggle(LPC_GPIO,
port(),
pin());
75 return Chip_GPIO_GetPinState(LPC_GPIO,
port(),
pin());
88 return Chip_GPIO_GetPinDIR(LPC_GPIO,
port(),
pin());
95 Chip_GPIO_SetPinDIROutput(LPC_GPIO,
port(),
pin());
100 Chip_GPIO_SetPinDIRInput(LPC_GPIO,
port(),
pin());
105template <
class Defs,
bool SAFE_VALUE>
struct GpioOutputPin :
public Defs
109 using Defs::set_output;
114 Chip_GPIO_Init(LPC_GPIO);
115 Chip_IOCON_Init(LPC_IOCON);
116 Chip_IOCON_PinMuxSet(
117 LPC_IOCON, port(), pin(), IOCON_FUNC0 | IOCON_MODE_INACT);
153template <
class Defs, u
int32_t GPIO_PULL>
struct GpioInputPin :
public Defs
161 Chip_GPIO_Init(LPC_GPIO);
162 Chip_IOCON_Init(LPC_IOCON);
163 Chip_IOCON_PinMuxSet(LPC_IOCON, port(), pin(), IOCON_FUNC0 | GPIO_PULL);
222#define GPIO_PIN(NAME, BaseClass, PORT, NUM) \
223 typedef BaseClass<LpcGpioPin<PORT, NUM>> NAME##_Pin
Creates an implementation of an os-independent Gpio object from a hardware-specific static Gpio struc...
OS-independent abstraction for GPIO.
Parametric GPIO output class.
static void hw_init()
Initializes the hardware pin.
static void set(bool value)
Sets the output pinm.
static void hw_set_to_safe()
Sets the hardware pin to a safe value.
Defines a GPIO output pin, initialized to be an output pin with high level.
Defines a GPIO output pin, initialized to be an output pin with low level.
Defines a GPIO output pin with high-current drive and low initialization level.
Static GPIO implementation for the NXP LPC microcontrollers.
static constexpr uint8_t pin()
static void toggle()
Toggles the output pin level.
static void set_input()
Configures pin as input.
static void set(bool value)
Sets the output pin to a given level.
static constexpr const Gpio * instance()
static void set_output()
Configures pin as output.
static constexpr uint8_t port()