diff options
| author | Dan Halbert <halbert@halwitz.org> | 2017-08-31 13:48:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-31 13:48:30 -0400 |
| commit | fdb97eda09ca1968df8a919d15ebd1fe191fb57e (patch) | |
| tree | 600ed31b4d8e7223719a6099fd862c11b9b73e9e /shared-bindings/microcontroller/__init__.c | |
| parent | f3cd6b0232ababc573ebfb13de12c197e0be6b4d (diff) | |
Add microcontroller.cpu.temperature, for use as a simple sensor on minimal boards. (#211)
* Add microcontroller.cpu, the sole instance of microcontroller.Processor.
microcontroller.cpu.frequency is the clock frequency, in Hz.
microcontroller.cpu.temperature is the reading from the internal temperature sensor, in Celsius. None if not available.
* Squeeze firmware size by using -finline-limit. Otherwise non-Express builds were slightly too big.
* Update submodules.
* Fix documentation glitches
Diffstat (limited to 'shared-bindings/microcontroller/__init__.c')
| -rw-r--r-- | shared-bindings/microcontroller/__init__.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/shared-bindings/microcontroller/__init__.c b/shared-bindings/microcontroller/__init__.c index 56d363eed..0546ebf30 100644 --- a/shared-bindings/microcontroller/__init__.c +++ b/shared-bindings/microcontroller/__init__.c @@ -32,13 +32,17 @@ #include "py/obj.h" #include "py/runtime.h" +#include "common-hal/microcontroller/Pin.h" +#include "common-hal/microcontroller/Processor.h" + #include "shared-bindings/microcontroller/__init__.h" #include "shared-bindings/microcontroller/Pin.h" -#include "common-hal/microcontroller/Pin.h" +#include "shared-bindings/microcontroller/Processor.h" + #include "py/runtime.h" -//| :mod:`microcontroller` --- Pin references and core functionality +//| :mod:`microcontroller` --- Pin references and cpu functionality //| ================================================================ //| //| .. module:: microcontroller @@ -56,6 +60,12 @@ //| Pin //| +//| .. attribute:: cpu +//| +//| CPU information and control, such as temperature and clock frequency. +//| This object is the sole instance of `microcontroller.Processor`. +//| + //| .. method:: delay_us(delay) //| //| Dedicated delay method used for very short delays. DO NOT do long delays @@ -92,8 +102,8 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_0(mcu_enable_interrupts_obj, mcu_enable_interrupt //| .. attribute:: nvm //| -//| Available non-volatile memory. Its a `nvm.ByteArray` when available or -//| ``None`` otherwise. +//| Available non-volatile memory. +//| This object is the sole instance of `nvm.ByteArray` when available or ``None`` otherwise. //| //| :mod:`microcontroller.pin` --- Microcontroller pin names @@ -112,16 +122,19 @@ const mp_obj_module_t mcu_pin_module = { STATIC const mp_rom_map_elem_t mcu_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_microcontroller) }, + { MP_ROM_QSTR(MP_QSTR_cpu), MP_ROM_PTR(&common_hal_mcu_processor_obj) }, { MP_ROM_QSTR(MP_QSTR_delay_us), MP_ROM_PTR(&mcu_delay_us_obj) }, { MP_ROM_QSTR(MP_QSTR_disable_interrupts), MP_ROM_PTR(&mcu_disable_interrupts_obj) }, { MP_ROM_QSTR(MP_QSTR_enable_interrupts), MP_ROM_PTR(&mcu_enable_interrupts_obj) }, #if CIRCUITPY_INTERNAL_NVM_SIZE > 0 - { MP_ROM_QSTR(MP_QSTR_nvm), &common_hal_mcu_nvm_obj }, + { MP_ROM_QSTR(MP_QSTR_nvm), MP_ROM_PTR(&common_hal_mcu_nvm_obj) }, #else - { MP_ROM_QSTR(MP_QSTR_nvm), &mp_const_none_obj }, + { MP_ROM_QSTR(MP_QSTR_nvm), MP_ROM_PTR(&mp_const_none_obj) }, #endif { MP_ROM_QSTR(MP_QSTR_Pin), MP_ROM_PTR(&mcu_pin_type) }, { MP_ROM_QSTR(MP_QSTR_pin), MP_ROM_PTR(&mcu_pin_module) }, + { MP_ROM_QSTR(MP_QSTR_Processor), MP_ROM_PTR(&mcu_processor_type) }, + }; STATIC MP_DEFINE_CONST_DICT(mcu_module_globals, mcu_module_globals_table); |
