// // Created by cfif on 16.09.22. // #include "GpioPin_AC7840x.h" tGpioPin vInitGpioPinPull( PORT_Type *port, GPIO_Type *gpio, uint32_t pinMask, port_data_direction_t direction, bool reverse, port_pull_config_t gpio_pull ) { GPIO_DRV_SetMuxModeSel(port, pinMask, PORT_MUX_AS_GPIO); GPIO_DRV_SetPinDirection(gpio, pinMask, direction); GPIO_DRV_SetPullSel(port, pinMask, gpio_pull); tGpioPin pin = { .port = port, .gpio = gpio, .pin = pinMask, .reverse = reverse }; return pin; } void GpioPinSet(tGpioPin *pin, bool value) { if (pin->reverse) { value = !value; } if (value) { GPIO_DRV_WritePin(pin->gpio, pin->pin, 1); } else { GPIO_DRV_WritePin(pin->gpio, pin->pin, 0); } } bool GpioPinGet(tGpioPin *pin) { bool value; if ((GPIO_DRV_ReadPins(pin->gpio) & (1 << pin->pin))) { value = true; } else { value = false; } if (pin->reverse) { value = !value; } return value; }