次のシェル コマンドは、Leopardboard gpio 31 を適切に切り替えます。
echo 31 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio31/direction
echo 0 > /sys/class/gpio/gpio31/value
echo 1 > /sys/class/gpio/gpio31/value
echo 0 > /sys/class/gpio/gpio31/value
これは、以下のコードの例として使用されます。次の .vala コードで gpio 31 がトグルされない理由がわかりませんか?
public void sync () {
int fd = -1;
fd = open("/sys/class/gpio/export", O_WRONLY);
if (fd < 0) {
GLib.stdout.printf("Error sync export\n");
return;
}
write(fd, "31", 3);
close(fd);
fd = open("/sys/class/gpio/gpio31/direction", O_WRONLY);
if (fd < 0) {
GLib.stdout.printf("Error sync direction\n");
return;
}
write(fd, "out", 4);
close(fd);
fd = open("/sys/class/gpio/gpio31/value", O_WRONLY);
if (fd < 0) {
GLib.stdout.printf("Error sync value\n");
return;
}
write(fd, "0", 2);
write(fd, "1", 2);
Thread.usleep (1000); /* 1ms */
write(fd, "0", 2);
close(fd);
}