Files
dboyarov 6d53a2451e lab1
2026-09-24 18:31:50 +03:00

39 lines
1.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ЛР2601, п. 3 порядка выполнения: меандр 20 кГц на выводе микроконтроллера
# Плата: ESP32-C3 Super Mini, MicroPython.
# Сигнал снимается с GPIO6 (разъём J1, контакт 8) и подаётся на вход первого инвертора.
#
# Используется аппаратный ШИМ: частота выдерживается точно
# и не зависит от скорости интерпретатора Python.
from machine import Pin, PWM
OUT_PIN = 6 # номер GPIO, при необходимости поменять
FREQ = 20_000 # 20 кГц -> период 50 мкс
pwm = PWM(Pin(OUT_PIN, Pin.OUT), freq=FREQ, duty_u16=32768) # скважность 50 %
# Программа ничего больше не делает: ШИМ работает сам по себе.
# Остановить: pwm.deinit()
# ---------------------------------------------------------------------------
# Вариант только на классе Pin (как в Приложении 3 методички).
# Частота получится НЕ ровно 20 кГц: каждая команда Python на ESP32-C3
# выполняется несколько микросекунд. Используйте, если преподаватель
# требует решение именно через Pin.on()/Pin.off().
#
# from machine import Pin
# import time
# p = Pin(OUT_PIN, Pin.OUT)
# half = 25 # полпериода 25 мкс
# t = time.ticks_us()
# while True:
# p.on()
# t = time.ticks_add(t, half)
# while time.ticks_diff(t, time.ticks_us()) > 0:
# pass
# p.off()
# t = time.ticks_add(t, half)
# while time.ticks_diff(t, time.ticks_us()) > 0:
# pass