/* * main_gpio_def.c * * Created on: 1 Jan 2024 * Author: Reinhard */ #include #include void SET_PIN(char Port, uint8_t Pin, uint32_t Mode) { uint32_t Mode_UND = 0xFFFFFFF0; uint32_t Mode_ODER = 0x00000000; Mode_UND |= Mode; Mode_ODER = Mode; for (u_int8_t i = 0; i < Pin; ++i) { Mode_ODER <<= 4; Mode_UND <<= 4; Mode_UND |= 0x0000000F; } if (Port == 'A') { GPIOA->CFGLR &= Mode_UND; GPIOA->CFGLR |= Mode_ODER; } if (Port == 'C') { GPIOC->CFGLR &= Mode_UND; GPIOC->CFGLR |= Mode_ODER; } if (Port == 'D') { GPIOD->CFGLR &= Mode_UND; GPIOD->CFGLR |= Mode_ODER; } }