コード例 #1
0
def tone(pin, frequency, duration=None):
    """Generates a square wave of the specified frequency on pin.
  """
    global pwm_pins

    if pin not in pwm_pins:
        print "Pin must be one of:"
        for key in pwm_pins:
            print key
        exit(1)

    if frequency < 1 or frequency > 500000:
        print "Invalid frequency"
        exit(1)

    initMatch(0, 1000000 / frequency)
    initMatch(pwm_pins[pin], 500000 / frequency)

    PWM_ChannelCmd(LPC_PWM1, pwm_pins[pin], FunctionalState.ENABLE)
    PWM_ResetCounter(LPC_PWM1)
    PWM_CounterCmd(LPC_PWM1, FunctionalState.ENABLE)
    PWM_Cmd(LPC_PWM1, FunctionalState.ENABLE)

    if duration:
        t = threading.Timer(float(duration) / 1000.0, noTone, [pin])
        t.start()
コード例 #2
0
ファイル: arduino.py プロジェクト: robovero/python
def tone(pin, frequency, duration=None):
    """Generates a square wave of the specified frequency on pin.
  """
    global pwm_pins

    if pin not in pwm_pins:
        print "Pin must be one of:"
        for key in pwm_pins:
            print key
        exit(1)

    if frequency < 1 or frequency > 500000:
        print "Invalid frequency"
        exit(1)

    initMatch(0, 1000000 / frequency)
    initMatch(pwm_pins[pin], 500000 / frequency)

    PWM_ChannelCmd(LPC_PWM1, pwm_pins[pin], FunctionalState.ENABLE)
    PWM_ResetCounter(LPC_PWM1)
    PWM_CounterCmd(LPC_PWM1, FunctionalState.ENABLE)
    PWM_Cmd(LPC_PWM1, FunctionalState.ENABLE)

    if duration:
        t = threading.Timer(float(duration) / 1000.0, noTone, [pin])
        t.start()
コード例 #3
0
def analogWrite(pin, value):
    """Writes an analog value (PWM wave) to a pin.
  """
    global pwm_pins

    if pin not in pwm_pins:
        print "Pin must be one of:"
        for key in pwm_pins:
            print key
        exit(1)

    if value < 0 or value > 255:
        print "Invalid duty cycle"
        exit(1)

    # 490Hz
    period = 1000000 / 490
    pulse_width = period * value / 255
    initMatch(0, period)
    initMatch(pwm_pins[pin], pulse_width)

    PWM_ChannelCmd(LPC_PWM1, pwm_pins[pin], FunctionalState.ENABLE)
    PWM_ResetCounter(LPC_PWM1)
    PWM_CounterCmd(LPC_PWM1, FunctionalState.ENABLE)
    PWM_Cmd(LPC_PWM1, FunctionalState.ENABLE)
コード例 #4
0
ファイル: arduino.py プロジェクト: robovero/python
def analogWrite(pin, value):
    """Writes an analog value (PWM wave) to a pin.
  """
    global pwm_pins

    if pin not in pwm_pins:
        print "Pin must be one of:"
        for key in pwm_pins:
            print key
        exit(1)

    if value < 0 or value > 255:
        print "Invalid duty cycle"
        exit(1)

    # 490Hz
    period = 1000000 / 490
    pulse_width = period * value / 255
    initMatch(0, period)
    initMatch(pwm_pins[pin], pulse_width)

    PWM_ChannelCmd(LPC_PWM1, pwm_pins[pin], FunctionalState.ENABLE)
    PWM_ResetCounter(LPC_PWM1)
    PWM_CounterCmd(LPC_PWM1, FunctionalState.ENABLE)
    PWM_Cmd(LPC_PWM1, FunctionalState.ENABLE)