樹莓派 wiringPi 優先順序 中斷 執行緒

2021-08-11 05:43:55 字數 1124 閱讀 5217

wiringpi庫真是包含了各個方面,甚至提供了程序操作介面。

使用wiringpi的介面可以很方便地建立新程序。

int pihipri (int priority) ;

設定程序優先順序。範圍是0~99,數字越大優先順序越高,預設是0。

返回0代表成功,返回-1代表失敗。

注:必須已root身份執行,否則無效。

int wiringpiisr (int pin, int edgetype, void (*function)(void)) ;

設定某個pin作為中斷腳,當觸發中斷時呼叫指定函式。

估計實現原理是後台用了乙個定時器不斷掃瞄這個引腳。

pin是引腳序號,編號方式在setup時決定。

edgetype是中斷觸發方式:

int_edge_falling

下降沿int_edge_rising

上公升沿int_edge_both

上公升沿和下降沿

int_edge_setup

未設定

中斷處理函式傳入函式指標即可。

int pithreadcreate (pi_thread func) ;

建立乙個執行緒執行func函式。要求func函式用pi_thread宣告。

返回0代表建立成功,非0代表失敗。

例:

123

4567

8910

pi_thread

(func

)//注意這種宣告方式,函式名用括號括起來,不帶引數

void

main

()

pilock (int keynum) ;

piunlock (int keynum) ;

獲取鎖和釋放鎖。wiringpi-c提供了4個鎖,keynum範圍是0~3。

預設所有所都是釋放狀態,當呼叫pilock()想要獲取鎖時,如果這個鎖沒有被釋放則會一直等待,直到這個鎖被釋放才會拿到這個鎖並繼續執行下去。

這裡的鎖可以理解為某個資源,使用該資源時呼叫pilock()標誌該資源正在被使用,使用結束後呼叫piunlock()表示釋放該資源。其他地方想要使用該資源也必須先獲取這個鎖,如果沒有獲取到則等待使用者釋放資源後再使用。

樹莓派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...

樹莓派 wiringPi 時間函式

wiringpi不僅提供硬體操作的介面,同時也提供了一些時間管理函式。void delay unsigned int howlong 延時ms,最大傳入32位無符號型整數,大約49天。實際上是睡眠,不占用cpu。由於linux是多工的,所以實際延時時間可能會更長。void delaymicrosec...

樹莓派golang呼叫wiringPi

用go搭建tcp伺服器,實在很方便,呼叫c寫的底層應用也很方便,有些特別注意的地方,紅色標記,以便以後查閱 package main cgo ldflags llib lwiringpi 編譯時鏈結wiringpi庫 include include include wiringpi.h void c...