From bb2955ea4bb5c0f9431653351a47b373a2391389 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Sun, 4 Sep 2011 02:12:45 +0200 Subject: Added systick based sleep(). --- time.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 time.h (limited to 'time.h') diff --git a/time.h b/time.h new file mode 100644 index 0000000..66d8e63 --- /dev/null +++ b/time.h @@ -0,0 +1,28 @@ +#ifndef TIME_H +#define TIME_H + +#include "stm32.h" +#include "interrupt.h" +#include "thread.h" + +class Time { + friend void interrupt(); + + private: + static volatile uint32_t systime; + + public: + static void init() { + STK.LOAD = 72000000 / 8 / 1000; // 1000 Hz. + STK.CTRL = 0x03; + } + + static void sleep(uint32_t ms) { + ms += systime; + while(systime < ms) { + Thread::yield(); + } + } +}; + +#endif -- cgit v1.2.3