]> git.gir.st - tmk_keyboard.git/blob - common/mbed/timer.c
Squashed 'tmk_core/' changes from 8da1898..e5f9940
[tmk_keyboard.git] / common / mbed / timer.c
1 #include "cmsis.h"
2 #include "timer.h"
3
4 /* Mill second tick count */
5 volatile uint32_t timer_count = 0;
6
7 /* Timer interrupt handler */
8 void SysTick_Handler(void) {
9 timer_count++;
10 }
11
12 void timer_init(void)
13 {
14 timer_count = 0;
15 SysTick_Config(SystemCoreClock / 1000); /* 1ms tick */
16 }
17
18 void timer_clear(void)
19 {
20 timer_count = 0;
21 }
22
23 uint16_t timer_read(void)
24 {
25 return (uint16_t)(timer_count & 0xFFFF);
26 }
27
28 uint32_t timer_read32(void)
29 {
30 return timer_count;
31 }
32
33 uint16_t timer_elapsed(uint16_t last)
34 {
35 return TIMER_DIFF_16(timer_read(), last);
36 }
37
38 uint32_t timer_elapsed32(uint32_t last)
39 {
40 return TIMER_DIFF_32(timer_read32(), last);
41 }
Imprint / Impressum