31
31
#include "py/nlr.h"
32
32
#include "py/smallint.h"
33
33
#include "py/obj.h"
34
+ #include "extmod/utime_mphal.h"
34
35
#include "systick.h"
35
36
#include "timeutils.h"
36
37
#include "portmodules.h"
@@ -129,51 +130,6 @@ STATIC mp_obj_t time_time(void) {
129
130
}
130
131
MP_DEFINE_CONST_FUN_OBJ_0 (time_time_obj , time_time );
131
132
132
- /// \function sleep(seconds)
133
- /// Sleep for the given number of seconds. Seconds can be a floating-point number to
134
- /// sleep for a fractional number of seconds.
135
- STATIC mp_obj_t time_sleep (mp_obj_t seconds_o ) {
136
- #if MICROPY_PY_BUILTINS_FLOAT
137
- if (MP_OBJ_IS_INT (seconds_o )) {
138
- #endif
139
- HAL_Delay (1000 * mp_obj_get_int (seconds_o ));
140
- #if MICROPY_PY_BUILTINS_FLOAT
141
- } else {
142
- HAL_Delay ((uint32_t )(1000 * mp_obj_get_float (seconds_o )));
143
- }
144
- #endif
145
- return mp_const_none ;
146
- }
147
- MP_DEFINE_CONST_FUN_OBJ_1 (time_sleep_obj , time_sleep );
148
-
149
- STATIC mp_obj_t time_sleep_ms (mp_obj_t ms_in ) {
150
- mp_int_t ms = mp_obj_get_int (ms_in );
151
- if (ms > 0 ) {
152
- HAL_Delay (ms );
153
- }
154
- return mp_const_none ;
155
- }
156
- MP_DEFINE_CONST_FUN_OBJ_1 (time_sleep_ms_obj , time_sleep_ms );
157
-
158
- STATIC mp_obj_t time_sleep_us (mp_obj_t usec_in ) {
159
- mp_int_t usec = mp_obj_get_int (usec_in );
160
- if (usec > 0 ) {
161
- sys_tick_udelay (usec );
162
- }
163
- return mp_const_none ;
164
- }
165
- MP_DEFINE_CONST_FUN_OBJ_1 (time_sleep_us_obj , time_sleep_us );
166
-
167
- STATIC mp_obj_t time_ticks_ms (void ) {
168
- return MP_OBJ_NEW_SMALL_INT (HAL_GetTick () & MP_SMALL_INT_POSITIVE_MASK );
169
- }
170
- STATIC MP_DEFINE_CONST_FUN_OBJ_0 (time_ticks_ms_obj , time_ticks_ms );
171
-
172
- STATIC mp_obj_t time_ticks_us (void ) {
173
- return MP_OBJ_NEW_SMALL_INT (sys_tick_get_microseconds () & MP_SMALL_INT_POSITIVE_MASK );
174
- }
175
- STATIC MP_DEFINE_CONST_FUN_OBJ_0 (time_ticks_us_obj , time_ticks_us );
176
-
177
133
STATIC mp_obj_t time_ticks_cpu (void ) {
178
134
static bool enabled = false;
179
135
if (!enabled ) {
@@ -186,27 +142,19 @@ STATIC mp_obj_t time_ticks_cpu(void) {
186
142
}
187
143
STATIC MP_DEFINE_CONST_FUN_OBJ_0 (time_ticks_cpu_obj , time_ticks_cpu );
188
144
189
- STATIC mp_obj_t time_ticks_diff (mp_obj_t start_in , mp_obj_t end_in ) {
190
- // we assume that the arguments come from ticks_xx so are small ints
191
- uint32_t start = MP_OBJ_SMALL_INT_VALUE (start_in );
192
- uint32_t end = MP_OBJ_SMALL_INT_VALUE (end_in );
193
- return MP_OBJ_NEW_SMALL_INT ((end - start ) & MP_SMALL_INT_POSITIVE_MASK );
194
- }
195
- STATIC MP_DEFINE_CONST_FUN_OBJ_2 (time_ticks_diff_obj , time_ticks_diff );
196
-
197
145
STATIC const mp_map_elem_t time_module_globals_table [] = {
198
146
{ MP_OBJ_NEW_QSTR (MP_QSTR___name__ ), MP_OBJ_NEW_QSTR (MP_QSTR_utime ) },
199
147
200
148
{ MP_OBJ_NEW_QSTR (MP_QSTR_localtime ), (mp_obj_t )& time_localtime_obj },
201
149
{ MP_OBJ_NEW_QSTR (MP_QSTR_mktime ), (mp_obj_t )& time_mktime_obj },
202
150
{ MP_OBJ_NEW_QSTR (MP_QSTR_time ), (mp_obj_t )& time_time_obj },
203
- { MP_OBJ_NEW_QSTR (MP_QSTR_sleep ), (mp_obj_t )& time_sleep_obj },
204
- { MP_OBJ_NEW_QSTR (MP_QSTR_sleep_ms ), (mp_obj_t )& time_sleep_ms_obj },
205
- { MP_OBJ_NEW_QSTR (MP_QSTR_sleep_us ), (mp_obj_t )& time_sleep_us_obj },
206
- { MP_OBJ_NEW_QSTR (MP_QSTR_ticks_ms ), (mp_obj_t )& time_ticks_ms_obj },
207
- { MP_OBJ_NEW_QSTR (MP_QSTR_ticks_us ), (mp_obj_t )& time_ticks_us_obj },
151
+ { MP_OBJ_NEW_QSTR (MP_QSTR_sleep ), (mp_obj_t )& mp_utime_sleep_obj },
152
+ { MP_OBJ_NEW_QSTR (MP_QSTR_sleep_ms ), (mp_obj_t )& mp_utime_sleep_ms_obj },
153
+ { MP_OBJ_NEW_QSTR (MP_QSTR_sleep_us ), (mp_obj_t )& mp_utime_sleep_us_obj },
154
+ { MP_OBJ_NEW_QSTR (MP_QSTR_ticks_ms ), (mp_obj_t )& mp_utime_ticks_ms_obj },
155
+ { MP_OBJ_NEW_QSTR (MP_QSTR_ticks_us ), (mp_obj_t )& mp_utime_ticks_us_obj },
208
156
{ MP_OBJ_NEW_QSTR (MP_QSTR_ticks_cpu ), (mp_obj_t )& time_ticks_cpu_obj },
209
- { MP_OBJ_NEW_QSTR (MP_QSTR_ticks_diff ), (mp_obj_t )& time_ticks_diff_obj },
157
+ { MP_OBJ_NEW_QSTR (MP_QSTR_ticks_diff ), (mp_obj_t )& mp_utime_ticks_diff_obj },
210
158
};
211
159
212
160
STATIC MP_DEFINE_CONST_DICT (time_module_globals , time_module_globals_table );
0 commit comments