forked from micropython/micropython
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Labels
Milestone
Description
From https://forums.adafruit.com/viewtopic.php?t=220287:
I can't initialize two PWMOut on two pins that use the same slice (for example, GP2 and GP3). But if I try, depending on which pin I initialize first, and what parameters I give to the second initializer, I get three different error messages, two of which are misleading. This makes PWM conflicts difficult to debug.
Adafruit CircuitPython 9.2.8 on 2025-05-28; Raspberry Pi Pico with rp2040 >>> import pwmio >>> import board >>> g2 = pwmio.PWMOut(board.GP2, frequency=20000) >>> g3 = pwmio.PWMOut(board.GP3, variable_frequency=True) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: Invalid variable_frequency >>> g2.deinit() >>> g3 = pwmio.PWMOut(board.GP3, variable_frequency=True) >>> g2 = pwmio.PWMOut(board.GP2, frequency=20000) Traceback (most recent call last): File "<stdin>", line 1, in <module> RuntimeError: Internal resource(s) in use >>> g3.deinit() >>> g2 = pwmio.PWMOut(board.GP2, frequency=20000) >>> g3 = pwmio.PWMOut(board.GP3) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: Invalid frequency >>>
I reproduced this on 10.0.0-beta.3. I suspect the deinit()
code is not restoring some state properly.