mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
37 lines
885 B
Python
37 lines
885 B
Python
# This work is licensed under the MIT license.
|
|
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
|
|
# https://github.com/openmv/openmv/blob/master/LICENSE
|
|
#
|
|
# PWM Control Example
|
|
#
|
|
# This example shows how to use PWM.
|
|
|
|
import time
|
|
from pyb import Pin, Timer
|
|
|
|
|
|
class PWM:
|
|
def __init__(self, pin, tim, ch):
|
|
self.pin = pin
|
|
self.tim = tim
|
|
self.ch = ch
|
|
|
|
|
|
pwms = {
|
|
"PWM1": PWM("PE12", 1, 1),
|
|
"PWM2": PWM("PE11", 1, 2),
|
|
# 'PWM3' : PWM('PA9', 1, 2),
|
|
"PWM3": PWM("PA10", 1, 3),
|
|
"PWM4": PWM("PE14", 1, 4),
|
|
"PWM5": PWM("PB8", 4, 3),
|
|
"PWM6": PWM("PB9", 4, 4),
|
|
}
|
|
|
|
# Generate a 1KHz square wave with 50% cycle on the following PWM.
|
|
for k, pwm in pwms.items():
|
|
tim = Timer(pwm.tim, freq=1000) # Frequency in Hz
|
|
ch = tim.channel(pwm.ch, Timer.PWM, pin=Pin(pwm.pin), pulse_width_percent=50)
|
|
|
|
while True:
|
|
time.sleep_ms(1000)
|