4 #include "lpc17xx_pinsel.h"
5 #include "lpc17xx_gpio.h"
7 GPIO::GPIO(PinName pin
) {
8 this->port
= (pin
>> 5) & 7;
9 this->pin
= pin
& 0x1F;
14 GPIO::GPIO(uint8_t port
, uint8_t pin
) {
21 GPIO::GPIO(uint8_t port
, uint8_t pin
, uint8_t direction
) {
27 set_direction(direction
);
32 PINSEL_CFG_Type PinCfg
;
34 PinCfg
.OpenDrain
= PINSEL_PINMODE_NORMAL
;
35 PinCfg
.Pinmode
= PINSEL_PINMODE_TRISTATE
;
36 PinCfg
.Portnum
= GPIO::port
;
37 PinCfg
.Pinnum
= GPIO::pin
;
38 PINSEL_ConfigPin(&PinCfg
);
41 void GPIO::set_direction(uint8_t direction
) {
42 FIO_SetDir(port
, 1UL << pin
, direction
);
53 void GPIO::write(uint8_t value
) {
62 FIO_SetValue(port
, 1UL << pin
);
66 FIO_ClearValue(port
, 1UL << pin
);
70 return (FIO_ReadValue(port
) & (1UL << pin
))?255:0;
73 int GPIO::operator=(int value
) {