summaryrefslogtreecommitdiff
path: root/include/arch
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-10-16 14:11:34 +0200
committerDaniel Friesel <derf@finalrewind.org>2018-10-16 14:11:34 +0200
commit6347726748a03ad334fe51718a4ded87c70735eb (patch)
treed58eb5f66973396f2375f61a95c70fe874a38c5f /include/arch
parentad6008f95f597e9ce57b094a8522587ab9372fd7 (diff)
MSP430 timer.stop: Disable timer entirely to save energy
Diffstat (limited to 'include/arch')
-rw-r--r--include/arch/msp430fr5969lp/driver/timer.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/include/arch/msp430fr5969lp/driver/timer.h b/include/arch/msp430fr5969lp/driver/timer.h
index de87c20..cb37da2 100644
--- a/include/arch/msp430fr5969lp/driver/timer.h
+++ b/include/arch/msp430fr5969lp/driver/timer.h
@@ -25,7 +25,7 @@ class Timer {
#if F_CPU == 1000000UL
inline void setup_khz(uint16_t const frequency) {
- TA0CTL = TASSEL__SMCLK | ID__1 | MC__UP; // -> 1 MHz base
+ TA0CTL = TASSEL__SMCLK | ID__1; // -> 1 MHz base
TA0EX0 = 0;
TA0CCR0 = 1000UL / frequency;
TA0CTL |= TACLR;
@@ -33,11 +33,11 @@ class Timer {
inline void setup_hz(uint16_t const frequency) { // 1 MHz base
if (frequency < 20) {
- TA0CTL = TASSEL__SMCLK | ID__8 | MC__UP; // /8
+ TA0CTL = TASSEL__SMCLK | ID__8; // /8
TA0EX0 = 1; // /2 -> /16 -> 62500 Hz
TA0CCR0 = 62500UL / frequency;
} else {
- TA0CTL = TASSEL__SMCLK | ID__1 | MC__UP;
+ TA0CTL = TASSEL__SMCLK | ID__1;
TA0EX0 = 0;
TA0CCR0 = 1000000UL / frequency;
}
@@ -45,14 +45,14 @@ class Timer {
}
#else
inline void setup_khz(uint16_t const frequency) {
- TA0CTL = TASSEL__SMCLK | _TA0_MAIN_DIV | MC__UP; // -> 2 MHz base
+ TA0CTL = TASSEL__SMCLK | _TA0_MAIN_DIV; // -> 2 MHz base
TA0EX0 = 0;
TA0CCR0 = 2000UL / frequency;
TA0CTL |= TACLR;
}
inline void setup_hz(uint16_t const frequency) { // 2 MHz base
- TA0CTL = TASSEL__SMCLK | _TA0_MAIN_DIV | MC__UP;
+ TA0CTL = TASSEL__SMCLK | _TA0_MAIN_DIV;
TA0EX0 = 0;
TA0CCR0 = 2000000UL / frequency;
TA0CTL |= TACLR;
@@ -61,14 +61,14 @@ class Timer {
inline void start(unsigned char const interrupt) {
if (interrupt) {
- TA0CTL |= TACLR | TAIE;
+ TA0CTL |= MC__UP | TACLR | TAIE;
} else {
- TA0CTL |= TACLR;
+ TA0CTL |= MC__UP | TACLR;
}
}
inline void stop() {
- TA0CTL &= ~TAIE;
+ TA0CTL &= ~MC__UP;
}
};