@@ -31,7 +31,7 @@ Timer::Timer(const ticker_data_t *data) : _running(), _start(), _time(), _ticker
31
31
void Timer::start () {
32
32
core_util_critical_section_enter ();
33
33
if (!_running) {
34
- _start = ticker_read (_ticker_data);
34
+ _start = ticker_read_us (_ticker_data);
35
35
_running = 1 ;
36
36
}
37
37
core_util_critical_section_exit ();
@@ -46,32 +46,39 @@ void Timer::stop() {
46
46
47
47
int Timer::read_us () {
48
48
core_util_critical_section_enter ();
49
- int time = _time + slicetime ();
49
+ us_timestamp_t time = _time + slicetime ();
50
50
core_util_critical_section_exit ();
51
51
return time;
52
52
}
53
53
54
54
float Timer::read () {
55
- return (float )read_us () / 1000000 .0f ;
55
+ core_util_critical_section_enter ();
56
+ us_timestamp_t time = _time + slicetime ();
57
+ core_util_critical_section_exit ();
58
+ time = time / 1000 ;
59
+ return (float )read_ms () / 1000 .0f ;
56
60
}
57
61
58
62
int Timer::read_ms () {
59
- return read_us () / 1000 ;
63
+ core_util_critical_section_enter ();
64
+ us_timestamp_t time = _time + slicetime ();
65
+ core_util_critical_section_exit ();
66
+ return time / 1000 ;
60
67
}
61
68
62
- int Timer::slicetime () {
69
+ us_timestamp_t Timer::slicetime () {
63
70
core_util_critical_section_enter ();
64
- int ret = 0 ;
71
+ us_timestamp_t ret = 0 ;
65
72
if (_running) {
66
- ret = ticker_read (_ticker_data) - _start;
73
+ ret = ticker_read_us (_ticker_data) - _start;
67
74
}
68
75
core_util_critical_section_exit ();
69
76
return ret;
70
77
}
71
78
72
79
void Timer::reset () {
73
80
core_util_critical_section_enter ();
74
- _start = ticker_read (_ticker_data);
81
+ _start = ticker_read_us (_ticker_data);
75
82
_time = 0 ;
76
83
core_util_critical_section_exit ();
77
84
}
0 commit comments