diff options
Diffstat (limited to 'os/time.h')
| -rw-r--r-- | os/time.h | 32 | 
1 files changed, 32 insertions, 0 deletions
diff --git a/os/time.h b/os/time.h new file mode 100644 index 0000000..3533967 --- /dev/null +++ b/os/time.h @@ -0,0 +1,32 @@ +#ifndef TIME_H +#define TIME_H + +#include "thread.h" + +struct STK_t { +	volatile uint32_t CTRL; +	volatile uint32_t LOAD; +	volatile uint32_t VAL; +	volatile uint32_t CALIB; +}; + +static STK_t& STK = *(STK_t*)0xe000e010; + +class Time { +	private: +		static volatile uint32_t systime; +	 +	public: +		inline static void tick() { +			systime++; +		} +		 +		inline static void sleep(uint32_t ms) { +			ms += systime; +			while(systime < ms) { +				Thread::yield(); +			} +		} +}; + +#endif  | 
