aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmaple/timer.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/libmaple/timer.h b/libmaple/timer.h
index dfc8a4f..53e2547 100644
--- a/libmaple/timer.h
+++ b/libmaple/timer.h
@@ -994,12 +994,10 @@ static inline void timer_oc_set_mode(timer_dev *dev,
uint8 channel,
timer_oc_mode mode,
uint8 flags) {
- uint8 bit0 = channel & 1;
- uint8 bit1 = (channel >> 1) & 1;
/* channel == 1,2 -> CCMR1; channel == 3,4 -> CCMR2 */
- __io uint32 *ccmr = &(dev->regs).gen->CCMR1 + bit1;
+ __io uint32 *ccmr = &(dev->regs).gen->CCMR1 + (((channel - 1) >> 1) & 1);
/* channel == 1,3 -> shift = 0, channel == 2,4 -> shift = 8 */
- uint8 shift = 8 * (1 - bit0);
+ uint8 shift = 8 * (1 - (channel & 1));
uint32 tmp = *ccmr;
tmp &= ~(0xFF << shift);