From 8b6e435ac89d1e3b75eb5a77140a3140eb5cdc69 Mon Sep 17 00:00:00 2001 From: polymurph Date: Sun, 31 Oct 2021 09:42:08 +0100 Subject: [PATCH] implemented speed setting. NOT TESTED! --- bsl/csl/stm32f042/Src/pin.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bsl/csl/stm32f042/Src/pin.c b/bsl/csl/stm32f042/Src/pin.c index 33a2d21..d4d2b17 100644 --- a/bsl/csl/stm32f042/Src/pin.c +++ b/bsl/csl/stm32f042/Src/pin.c @@ -35,6 +35,13 @@ const uint32_t pinPullUpDown[3] = { PUPDR_PULL_DOWN }; +const uint32_t speedList[4] = { + 0, + 0, + 1, + 2 +}; + void setMode(pinNo_t pinNo, mode mode) { init(pinNo); @@ -57,7 +64,8 @@ void setPullUpDonw(pinNo_t pinNo, pullUpDown resistance) void setSpeed(pinNo_t pinNo, speed speed) { - + PIN_BASE->OSPEEDR &= (0x3 << ((pinNo & 0x0F) * 2)); + PIN_BASE->OSPEEDR |= (speedList[speed] << ((pinNo & 0x0F) * 2)); } void config(pinNo_t pinNo, mode mode, state state, pullUpDown resistance, speed speed)