1 """PWMOut Class for RP2040s with u2if"""
 
   2 from .rp2040_u2if import rp2040_u2if
 
   6     """Base Pulse Width Modulation Output Class"""
 
   8     def __init__(self, pin, *, frequency=500, duty_cycle=0, variable_frequency=False):
 
   9         rp2040_u2if.pwm_configure(
 
  12             duty_cycle=duty_cycle,
 
  13             variable_frequency=variable_frequency,
 
  24     def __exit__(self, t, value, traceback):
 
  29         rp2040_u2if.pwm_deinit(self._pin)
 
  33         """The PWM's output duty cycle, 16-bit."""
 
  34         return rp2040_u2if.pwm_get_duty_cycle(self._pin)
 
  37     def duty_cycle(self, duty_cycle):
 
  38         rp2040_u2if.pwm_set_duty_cycle(self._pin, duty_cycle)
 
  42         """The PWM's output frequency in Hertz."""
 
  43         return rp2040_u2if.pwm_get_frequency(self._pin)
 
  46     def frequency(self, frequency):
 
  47         rp2040_u2if.pwm_set_frequency(self._pin, frequency)