aboutsummaryrefslogtreecommitdiff
path: root/common/mbed/timer.c
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2014-11-24 15:36:53 +0900
committertmk <nobody@nowhere>2014-11-24 15:36:53 +0900
commited52ebb9870a26496b13a0565c1aaca8ded3465b (patch)
treecddad806a3408e05bc29310254c564ee94e3e710 /common/mbed/timer.c
parenteb90ed6238426db9367e294abfaefb5de07564f5 (diff)
parente2077cad45f1736e878e317c43bd94117c61b5e0 (diff)
downloadqmk_firmware-ed52ebb9870a26496b13a0565c1aaca8ded3465b.tar.gz
qmk_firmware-ed52ebb9870a26496b13a0565c1aaca8ded3465b.zip
Merge branch 'merge_rn42'
Diffstat (limited to 'common/mbed/timer.c')
-rw-r--r--common/mbed/timer.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/common/mbed/timer.c b/common/mbed/timer.c
new file mode 100644
index 000000000..c357ceb78
--- /dev/null
+++ b/common/mbed/timer.c
@@ -0,0 +1,41 @@
1#include "cmsis.h"
2#include "timer.h"
3
4/* Mill second tick count */
5volatile uint32_t timer_count = 0;
6
7/* Timer interrupt handler */
8void SysTick_Handler(void) {
9 timer_count++;
10}
11
12void timer_init(void)
13{
14 timer_count = 0;
15 SysTick_Config(SystemCoreClock / 1000); /* 1ms tick */
16}
17
18void timer_clear(void)
19{
20 timer_count = 0;
21}
22
23uint16_t timer_read(void)
24{
25 return (uint16_t)(timer_count & 0xFFFF);
26}
27
28uint32_t timer_read32(void)
29{
30 return timer_count;
31}
32
33uint16_t timer_elapsed(uint16_t last)
34{
35 return TIMER_DIFF_16(timer_read(), last);
36}
37
38uint32_t timer_elapsed32(uint32_t last)
39{
40 return TIMER_DIFF_32(timer_read32(), last);
41}