トップ «前の日記(2014-05-29(Thu)) 最新 次の日記(2014-06-01(Sun))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2014-05-30(Fri) かすみぎみでややあつし

sysfs で ON/OFF

7セグメントLEDの点滅に シェルスクリプトを使うと 遅かったが、外部コマンドの頻繁な呼び出し が原因である可能性を考えて、違う方法を試す。

この場合、GPIOは、

$ echo $num > /sys/class/gpio/export
$ echo out > /sys/class/gpio/gpio${num}/direction
$ echo 1 > /sys/class/gpio/gpio${num}/value
$ echo $num > /sys/class/gpio/unexport

のようにアクセスする。使い分けはout/in と、out時の 1/0くらいか。
CLIでは一般ユーザでできたが、シェルスクリプトに すると、スーパーユーザでないとdirectionへの 書き込みがPermission denied を喰らう。

で、 今度は"39"を表示させるスクリプトを実装。 切り替えは差分(一ヶ所)だけにしている。
dash(1)でも、外部コマンドはsleep(1)だけのはず。
今度は少し速くなった。が、奇妙なことに 10秒くらいかかる目算でできたスクリプトは 3秒めくらいまでちらつきが目立つ。そして それ以降は急速に目立たなくなり、ほとんど 普通の点灯に見えるようになる。
それにしても、だんだんと速くなるのはなんでかしら。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。