(十三)樹莓派3B+ wiringPi庫的使用--軟體PWM
阿新 • • 發佈:2018-12-09
程式碼
#include <wiringPi.h>
#include <softPwm.h>
#define pwm_pin 1 //定義PWM引腳 GPIO.1
int main (void)
{
wiringPiSetup (); // wiringPi庫初始化
softPwmCreate (pwm_pin, 0, 100) ; // 設定GPIO.1為PWM輸出
int val = 0;
while(1)
{
val ++;
if(val >= 100){
val = 0 ;
}
softPwmWrite(pwm_pin,val); // 輸出佔空比為val/100的pwm波
delay(3); // 延時3毫秒
}
return 0 ;
}
怎麼使用
1.引入標頭檔案
#include <softPwm.h>
2.初始化埠
int softPwmCreate (int pin, int initialValue, int pwmRange) ;
引數pin
,樹莓派的任何一個GPIO引腳都可以被設定成軟體PWM的輸出引腳。
引數initialValue
,PWM初始值,這值得範圍在0~100之間。
引數pwmRange
void softPwmWrite (int pin, int value) ;
給作為PWM輸出的引腳設定輸出值,這個值在pwmRange
範圍之內。
wiringPi庫提供的軟體PWM就這個兩個方法,但是有些是需要注意的。
注意點
- PWM輸出的每一個“週期”都需要10毫秒,預設範圍值為100,因此,嘗試每秒改變PWM值超過100次將是徒勞的。(也就是說軟體PWM的固定輸出頻率是100HZ,這個對於驅動一般的電機是足夠了) 您需要保持您的程式執行,以維護PWM輸出!
- 在軟PWM模式下啟用的每個引腳使用大約0.5%的CPU。
- 目前還沒有辦法禁用軟PWM上的一個引腳,而程式在執行中。
- 您需要保持您的程式執行,以維護PWM輸出!