Микроконтроллер
Модуль машины содержит специальные функции, связанные с 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.