目录
软件pwm
可以使其他io口发出pwm,不限制与io口1
软件pwm是占用cpu的,可以得到100Hz(10ms)的pwm,默认值为100
PWMfreq = 1 x 10^6 / (100 x range)
需要50hz, 所以range=200
舵机看上一篇 硬件pwm+舵机
代码
#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
int main(void)
{
int pin = 27;
//初始化wiringpi
if(-1==wiringPiSetup()){
return -1;
}
pinMode(pin , OUTPUT);//输出
//PWMfreq = 1 x 10^6 / (100 x range) 需要50hz
softPwmCreate(pin , 0, 200);// 设置周期分为200份
softPwmWrite(pin , 5);
delay(2000);
int i = 0;
while(1) {
i++;
softPwmWrite(pin , i);
printf("%d\n",i);
delay(20);
if(i>25)break;
}
return 0 ;
}
编译
gcc main.c -lwiringPi
运行
sudo ./a.out