樹莓派 wiringPi 時間函式

2021-08-11 05:40:26 字數 1233 閱讀 8453

wiringpi不僅提供硬體操作的介面,同時也提供了一些時間管理函式。

void delay (unsigned int howlong)

延時ms,最大傳入32位無符號型整數,大約49天。

實際上是睡眠,不占用cpu。

由於linux是多工的,所以實際延時時間可能會更長。

void delaymicroseconds (unsigned int howlong)

延時微秒,最大傳入32位無符號型整數,大約71分鐘。

wiringpi的庫檔案中有這樣乙個函式:

123

4567

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。在用樹莓派處理對時間比較敏感的任務時可能會在意這些時間。

樹莓派中經常需要精確地週期性執行某個動作,可以用如下方式精確定時,類似於微控制器裡的定時器:

123

4567

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...