pwmlib-opi

PWM C Library for H3/H2+ Sunxi SoC

Stars
7

pwmlib-opi

PWM Library for H3/H2+ Sunxi SoC

The Mainline Kernel provides a PWM driver as an Overlay driver. Mainline Kernel no longer requires this library.

Mainline KernelOverlay driverPWMhCo[B Mainline Kernelc[svB


CuOrangePiNanoPiAH3/H2+x[X{[hn[hEFAPWMgCuB {[hmFB OrangePi PC(H3) OrangePi ZERO(H2+) NanoPi M1(H3)

CughCo[LKvLB https://github.com/iboguslavsky/pwm-sunxi-opi0


vOSG90}CNT[{[^ 0 -90 +90 0 B cc -o pwmt pwmt.c pwm.c -lwiringPi sudo ./pwmt

T[{[^gASpXActivepXB void pwm_begin(float period) period : SpX(mSec)

void pwm_active(float period) period : ActivepX(mSec)


T[ovZXobNOEhNAR}hCT[{[^B

cc -o pwmd pwmd.c pwm.c -lwiringPi su ./pwmd & exit

cc -o pwmc pwmc.c ./pwmc 20.0 1.45 ./pwmc 20.0 2.35 ./pwmc 20.0 0.625



This is the library to use hardware PWM by a board of H3/H2+ base such as OrangePi and NanoPi. It works by the following board. OrangePi PC(H3) OrangePi ZERO(H2+) NanoPi M1(H3)

You have to make the following driver effective to use this library. https://github.com/iboguslavsky/pwm-sunxi-opi0


SG90 micro servomotor (http://akizukidenshi.com/download/ds/towerpro/SG90.pdf) works by the following program.

SG90 Opi
Vcc -- 5V
Gnd -- GND
PWM -- UART0_RX

cc -o pwmt pwmt.c pwm.c -lwiringPi sudo ./pwmt

When using a servomotor, you can control with entire pulse width and active pulse width.

void pwm_begin(float period) period : entire pulse width(mSec)

void pwm_active(float period) period : active pulse width(mSec)


You can control servomotor from command-line with background server process like pigpio.

cc -o pwmd pwmd.c pwm.c -lwiringPi su ./pwmd & exit

cc -o pwmc pwmc.c ./pwmc 20.0 1.45 ./pwmc 20.0 2.35 ./pwmc 20.0 0.625

pwmc don't need delay time.