wiringpi不僅提供硬體操作的介面,同時也提供了一些時間管理函式。
void delay (unsigned int howlong)
延時ms,最大傳入32位無符號型整數,大約49天。
實際上是睡眠,不占用cpu。
由於linux是多工的,所以實際延時時間可能會更長。
void delaymicroseconds (unsigned int howlong)
延時微秒,最大傳入32位無符號型整數,大約71分鐘。
wiringpi的庫檔案中有這樣乙個函式:
1234567
891011
12
void
delaymicrosecondshard
(unsigned
inthowlong
)
其實 delaymicroseconds 函式會判斷傳入時間如果小於100us就使用 delaymicrosecondshard 占用式延時,否則會呼叫 nanosleep 函式。
如果我們想要精確延時,是可以使用 delaymicrosecondshard 函式的,這個函式在.h檔案裡沒有宣告,但已經編譯完成,只要用 void delaymicrosecondshard (unsigned int howlong); 把此函式宣告一下就可以使用了。
unsigned int millis (void)
返回從設定setup以來所經過的時間,單位是ms。
unsigned int micros (void)
返回從設定setup以來所經過的時間,單位是us。
測試發現這個函式獲取時間速度是很快地,此函式執行時間大約1us,也就是說連續執行兩次此函式時間相差大約1us。在用樹莓派處理對時間比較敏感的任務時可能會在意這些時間。
樹莓派中經常需要精確地週期性執行某個動作,可以用如下方式精確定時,類似於微控制器裡的定時器:
1234567
891011
1213
1415
16
#define interval 20000
//間隔時間,單位是us
intmain
(int
argc
,char
*argv)}
return0;
}
樹莓派wiringPi輸出PMW
只有wringpi第1腳 第23腳 第24腳和第26腳才支援輸出硬體pwm波 pinmode 1,pwm output 函式在系統模式 sys mode 下無效。pwmwrite 1,22 輸出占空比為22 1024的pwm波 新增標頭檔案 include 主函式中 int pwmpin 7 wir...
樹莓派golang呼叫wiringPi
用go搭建tcp伺服器,實在很方便,呼叫c寫的底層應用也很方便,有些特別注意的地方,紅色標記,以便以後查閱 package main cgo ldflags llib lwiringpi 編譯時鏈結wiringpi庫 include include include wiringpi.h void c...
樹莓派安裝WiringPi庫
wiringpi是乙個樹莓派gpio控制開源庫,安裝後可以使用c語言呼叫相關的函式操作gpio。專案官網 樹莓派gpio管腳定義 注意 若需i2c支援,需要安裝i2c tools libi2c dev sudo apt get install i2c tools sudo apt get insta...