1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/tests/driver_servo
Marian Buschsieweke 6dc2a60597
drivers/servo: reimplement with high level interface
The previous servo driver didn't provide any benefit over using PWM
directly, as users controlled the servo in terms of PWM duty cycles.
This changes the interface to provide a high level interface that
abstracts the gory PWM details.

In addition, a SAUL layer and auto-initialization is provided.

Co-authored-by: benpicco <benpicco@googlemail.com>
2023-02-22 10:00:04 +01:00
..
app.config.test drivers/servo: reimplement with high level interface 2023-02-22 10:00:04 +01:00
main.c drivers/servo: reimplement with high level interface 2023-02-22 10:00:04 +01:00
Makefile drivers/servo: reimplement with high level interface 2023-02-22 10:00:04 +01:00
Makefile.ci drivers/servo: reimplement with high level interface 2023-02-22 10:00:04 +01:00
README.md drivers/servo: Handle inexact frequencies from periph_pwm 2015-05-30 12:41:07 +02:00

Background

Test for the high level servo driver.

Expected result

A servo connected to PWM_0 channel 0 should move back and forth inside the angle -90 degrees to +90 degrees, approximately.

Using a scope should show a varying pulse length between 1000 us to 2000 us long. The requested frequency is 100 Hz, but due to hardware limitations it might not be possible to achieve the selected frequency. The pulse width should, however, remain the same, only the frequency of pulses (and hence the duty cycle) should differ.