Микроконтроллер

Модуль машины содержит специальные функции, связанные с micro:bit аппаратное обеспечение. Большинство функций этого модуля позволяют добиться прямого и неограниченный доступ и управление аппаратными блоками в системе (такими как ЦП, таймеры, автобусы и т.д.). При неправильном использовании это может привести к неисправности, зависаниям, сбои вашей платы и, в крайних случаях, повреждение оборудования.

Функции

machine.unique_id()

Возвращает байтовую строку с уникальным идентификатором доски. Это будет варьироваться от одного экземпляра платы к другому.

machine.reset()

Сбрасывает устройство аналогично нажатию внешней кнопки RESET.

machine.freq()

Возвращает частоту процессора в герцах.

machine.disable_irq()

Отключите запросы на прерывание. Возвращает предыдущее состояние IRQ, которое должно быть считается непрозрачным значением. Это возвращаемое значение должно быть передано в machine.enable_irq() действия по восстановлению прерываний до их исходное состояние, до machine.disable_irq() was called.

machine.enable_irq()

Повторно включите запросы на прерывание. Параметр state должен быть значением которое было возвращено с самого последнего звонка в machine.disable_irq().

machine.time_pulse_us(pin, pulse_level, timeout_us=1000000)

Время импульса на заданном pin и возвращение длительности импульса в микросекунды. Аргумент pulse_level должен быть равен 0, чтобы отсчитывать низкий импульс или 1 для определения времени высокого пульса.

Если текущее входное значение вывода отличается от pulse_level, функция сначала (*) ждет, пока ввод вывода не станет равным pulse_level, затем (**) умножить на продолжительность, на которую контакт равен pulse_level. Если вывод уже равен pulse_level, тогда синхронизация начинается сразу.

Функция вернет -2, если время ожидания условия истекло. отмеченный (*) выше, и -1, если во время основного измерения был тайм-аут, отмечены (**) выше. Тайм-аут одинаков для обоих случаев и задается timeout_us (в микросекундах).

Чтение памяти

Модуль machine позволяет читать из памяти устройства, получая 1 байт (8 бит; mem8), 2 байта (16 бит; mem16) или 4 байта (32 бита; mem32) слов с физических адресов. Например: mem8[0x00] читает 1 байт по физическому адресу 0x00. Это имеет ряд применений, например, если вы хотите прочитать данные из регистров nRF51.