- polling-gpio-pin-from-c-always-getting-immediate-response
- GPIO-WATCH: RUN SCRIPTS IN RESPONSE TO GPIO SIGNALS
- Linux Poll 機制
- gpio sysfs
sys 裡面的 gpio property 有一項:edge。
用來設定 interrupt
配合 poll( ) ,可以作到 blocking read,這樣就不用一直 read (polling)
gpio 的 edge 有以下幾個可以設:
- rising
- falling
- both
- none
實測結果,falling 跟 both 的效果一樣。
設完之後,對 gpio 的 value 做 polling 舊可以。
就像這一篇 的說明一樣:
# echo 4 >/sys/class/gpio/export # echo in >/sys/class/gpio/gpio4/direction # echo rising >/sys/class/gpio/gpio4/edge然後舊可以 poll..
有幾項要注意:
- 先 read 一次,把上次 trigger 的 event 清空,之後再 poll
- poll 的 event 是 POLLPRI,不是 POLLIN
- 要清除 event 要做 read,之前要先 seek 回 file begin
修改好,test OK 的 example 在
沒有留言:
張貼留言