6262#include "mpexception.h"
6363#include "random.h"
6464#include "pybextint.h"
65+ #include "pybi2c.h"
66+ #include "utils.h"
6567
6668
6769#ifdef DEBUG
@@ -218,10 +220,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_delay_obj, pyb_delay);
218220STATIC mp_obj_t pyb_udelay (mp_obj_t usec_in ) {
219221 mp_int_t usec = mp_obj_get_int (usec_in );
220222 if (usec > 0 ) {
221- uint32_t count = 0 ;
222- const uint32_t utime = ((HAL_FCPU_HZ / 1000000 ) * (usec / 4 ));
223- while (++ count <= utime ) {
224- }
223+ UtilsDelay (UTILS_DELAY_US_TO_COUNT (usec ));
225224 }
226225 return mp_const_none ;
227226}
@@ -261,6 +260,17 @@ STATIC mp_obj_t pyb_repl_uart(uint n_args, const mp_obj_t *args) {
261260}
262261STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (pyb_repl_uart_obj , 0 , 1 , pyb_repl_uart );
263262
263+ /// \function mkdisk('path')
264+ /// Formats the selected drive, useful when the filesystem has been damaged beyond repair
265+ STATIC mp_obj_t pyb_mkdisk (mp_obj_t path_o ) {
266+ const char * path = mp_obj_str_get_str (path_o );
267+ if (FR_OK != f_mkfs (path , 1 , 0 )) {
268+ nlr_raise (mp_obj_new_exception_msg (& mp_type_OSError , mpexception_os_operation_failed ));
269+ }
270+ return mp_const_none ;
271+ }
272+ STATIC MP_DEFINE_CONST_FUN_OBJ_1 (pyb_mkdisk_obj , pyb_mkdisk );
273+
264274MP_DECLARE_CONST_FUN_OBJ (pyb_main_obj ); // defined in main.c
265275
266276STATIC const mp_map_elem_t pyb_module_globals_table [] = {
@@ -291,8 +301,7 @@ STATIC const mp_map_elem_t pyb_module_globals_table[] = {
291301 { MP_OBJ_NEW_QSTR (MP_QSTR_delay ), (mp_obj_t )& pyb_delay_obj },
292302 { MP_OBJ_NEW_QSTR (MP_QSTR_udelay ), (mp_obj_t )& pyb_udelay_obj },
293303 { MP_OBJ_NEW_QSTR (MP_QSTR_sync ), (mp_obj_t )& pyb_sync_obj },
294-
295- //{ MP_OBJ_NEW_QSTR(MP_QSTR_Timer), (mp_obj_t)&pyb_timer_type },
304+ { MP_OBJ_NEW_QSTR (MP_QSTR_mkdisk ), (mp_obj_t )& pyb_mkdisk_obj },
296305
297306#if MICROPY_HW_ENABLE_RNG
298307 { MP_OBJ_NEW_QSTR (MP_QSTR_rng ), (mp_obj_t )& pyb_rng_get_obj },
@@ -304,7 +313,7 @@ STATIC const mp_map_elem_t pyb_module_globals_table[] = {
304313
305314 { MP_OBJ_NEW_QSTR (MP_QSTR_Pin ), (mp_obj_t )& pin_type },
306315 { MP_OBJ_NEW_QSTR (MP_QSTR_ExtInt ), (mp_obj_t )& extint_type },
307-
316+ { MP_OBJ_NEW_QSTR ( MP_QSTR_I2C ), ( mp_obj_t ) & pyb_i2c_type },
308317 { MP_OBJ_NEW_QSTR (MP_QSTR_UART ), (mp_obj_t )& pyb_uart_type },
309318};
310319
0 commit comments