summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2017-12-14 09:35:32 +0100
committerDaniel Friesel <derf@finalrewind.org>2017-12-14 09:35:32 +0100
commit693afffd7b89507916ecd759767b0b7e947dca60 (patch)
tree386783d9faded12240a3fd06eada7dc3dfd867c1
parente9bebe253fdecee009414bdce7ccdfba83f980e6 (diff)
msp430fr5969lp: Add TIMER_S support
-rw-r--r--include/msp430fr5969lp/driver/uptime.h10
-rw-r--r--src/app/ledblink/main.cc17
2 files changed, 20 insertions, 7 deletions
diff --git a/include/msp430fr5969lp/driver/uptime.h b/include/msp430fr5969lp/driver/uptime.h
index eaa7203..a25994d 100644
--- a/include/msp430fr5969lp/driver/uptime.h
+++ b/include/msp430fr5969lp/driver/uptime.h
@@ -7,12 +7,18 @@
class Uptime {
private:
Uptime(const Uptime &copy);
+#ifdef TIMER_S
+ uint16_t seconds;
+#endif
public:
- Uptime () {}
+ Uptime () : seconds(0) {}
inline uint16_t get_us() { return TA0R; }
- inline uint16_t get_s() { return 0; }
inline uint16_t get_cycles() { return TA2R; }
+#ifdef TIMER_S
+ inline uint16_t get_s() { return seconds; }
+ inline void tick_s() { seconds++; }
+#endif
};
extern Uptime uptime;
diff --git a/src/app/ledblink/main.cc b/src/app/ledblink/main.cc
index 740309b..75c9116 100644
--- a/src/app/ledblink/main.cc
+++ b/src/app/ledblink/main.cc
@@ -3,6 +3,13 @@
#include "driver/stdout.h"
#include "driver/uptime.h"
+#ifndef TIMER_CYCLES
+#error makeflag timer_cycles=1 required
+#endif
+#ifndef TIMER_S
+#error makeflag timer_s=1 required
+#endif
+
/*
void check_command(unsigned char argc, char** argv)
{
@@ -89,7 +96,7 @@ void check_command(unsigned char argc, char** argv)
void loop(void)
{
gpio.led_toggle(1);
- kout << dec << uptime.get() << endl;
+ kout << dec << uptime.get_s() << endl;
}
int main(void)
@@ -101,10 +108,10 @@ int main(void)
gpio.led_on(0);
kout << "Hello, World!" << endl;
kout << "Test, World!" << endl;
- kout << dec << uptime.get() << endl;
- kout << dec << uptime.get() << endl;
- kout << dec << uptime.get() << endl;
- kout << dec << uptime.get() << endl;
+ kout << dec << uptime.get_cycles() << endl;
+ kout << dec << uptime.get_cycles() << endl;
+ kout << dec << uptime.get_cycles() << endl;
+ kout << dec << uptime.get_cycles() << endl;
arch.idle_loop();