diff options
| author | danicampora | 2015-02-10 13:11:27 +0100 |
|---|---|---|
| committer | danicampora | 2015-02-13 17:54:04 +0100 |
| commit | 99f3f6b5de567c1bdf04259d2c8322681755c732 (patch) | |
| tree | f80a4d986bf20478283abb9dd45517fbdc4740c3 /cc3200/mods/modpyb.c | |
| parent | 601c814603801ad3af78e37d26c87a4470156738 (diff) | |
cc3200: Add I2C module. Only master mode is currently supported.
Diffstat (limited to 'cc3200/mods/modpyb.c')
| -rw-r--r-- | cc3200/mods/modpyb.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/cc3200/mods/modpyb.c b/cc3200/mods/modpyb.c index 869adc761..86c726587 100644 --- a/cc3200/mods/modpyb.c +++ b/cc3200/mods/modpyb.c @@ -62,6 +62,8 @@ #include "mpexception.h" #include "random.h" #include "pybextint.h" +#include "pybi2c.h" +#include "utils.h" #ifdef DEBUG @@ -218,10 +220,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_delay_obj, pyb_delay); STATIC mp_obj_t pyb_udelay(mp_obj_t usec_in) { mp_int_t usec = mp_obj_get_int(usec_in); if (usec > 0) { - uint32_t count = 0; - const uint32_t utime = ((HAL_FCPU_HZ / 1000000) * (usec / 4)); - while (++count <= utime) { - } + UtilsDelay(UTILS_DELAY_US_TO_COUNT(usec)); } return mp_const_none; } @@ -261,6 +260,17 @@ STATIC mp_obj_t pyb_repl_uart(uint n_args, const mp_obj_t *args) { } STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(pyb_repl_uart_obj, 0, 1, pyb_repl_uart); +/// \function mkdisk('path') +/// Formats the selected drive, useful when the filesystem has been damaged beyond repair +STATIC mp_obj_t pyb_mkdisk(mp_obj_t path_o) { + const char *path = mp_obj_str_get_str(path_o); + if (FR_OK != f_mkfs(path, 1, 0)) { + nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, mpexception_os_operation_failed)); + } + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_mkdisk_obj, pyb_mkdisk); + MP_DECLARE_CONST_FUN_OBJ(pyb_main_obj); // defined in main.c STATIC const mp_map_elem_t pyb_module_globals_table[] = { @@ -291,8 +301,7 @@ STATIC const mp_map_elem_t pyb_module_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_delay), (mp_obj_t)&pyb_delay_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_udelay), (mp_obj_t)&pyb_udelay_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_sync), (mp_obj_t)&pyb_sync_obj }, - - //{ MP_OBJ_NEW_QSTR(MP_QSTR_Timer), (mp_obj_t)&pyb_timer_type }, + { MP_OBJ_NEW_QSTR(MP_QSTR_mkdisk), (mp_obj_t)&pyb_mkdisk_obj }, #if MICROPY_HW_ENABLE_RNG { 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[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_Pin), (mp_obj_t)&pin_type }, { MP_OBJ_NEW_QSTR(MP_QSTR_ExtInt), (mp_obj_t)&extint_type }, - + { MP_OBJ_NEW_QSTR(MP_QSTR_I2C), (mp_obj_t)&pyb_i2c_type }, { MP_OBJ_NEW_QSTR(MP_QSTR_UART), (mp_obj_t)&pyb_uart_type }, }; |
