From e1a45dbccd24396588b5966012f85ce8b19b74a5 Mon Sep 17 00:00:00 2001 From: prosper00 <57373245+prosper00@users.noreply.github.com> Date: Tue, 23 May 2023 22:20:31 -0600 Subject: [PATCH] Update wiring.c --- examples/GPIO/wiring.c | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/examples/GPIO/wiring.c b/examples/GPIO/wiring.c index b8a71d3..f852cd0 100644 --- a/examples/GPIO/wiring.c +++ b/examples/GPIO/wiring.c @@ -46,27 +46,10 @@ void portEnable(enum GPIOports port) { void pinMode(enum GPIOpins pin, enum GPIOpinMode mode) { GPIO_TypeDef * GPIOx; - uint16_t PinOffset = 0; + uint16_t PinOffset; - if (pin <= pin_A7) { - GPIOx = GPIOA; - PinOffset = pin << 2; - } - else if (pin <= pin_B7) { /* GPIOB doesn't actually exist (yet?) - GPIOx = GPIOB; - PinOffset = (pin-8) << 2; */ - } - else if (pin <= pin_C7) { - GPIOx = GPIOC; - PinOffset = (pin - 16) << 2; - } - else if (pin <= pin_D7) { - GPIOx = GPIOD; - PinOffset = (pin - 24) << 2; - } - else { - return; - } + GPIOx = GPIOA+(pin>>3); + PinOffset = (pin & 0x7)<<2; GPIOx->CFGLR &= ~(0b1111<<PinOffset); // zero the 4 configuration bits -- GitLab