#!/bin/bash # There is NO error checking in this program - you can mess up pins big time if you want. # gpio mode pin inputtype # gpio read pin # gpio write pin level # gpio pwm pin level # gpio close pin declare -A pins # Map the GPIO names to actual underlying IO numbers pins=(["0"]="73" ["1"]="72" ["2"]="71" ["3"]="70" ["4"]="194" ["5"]="195" ["6"]="67" ["7"]="1") usage() { echo "" echo " gpiohb mode {pin} {in|out}" echo " gpiohb read {pin}" echo " gpiohb write {pin} {0|1}" echo " gpiohb wfi {pin} {rising|falling|both|none}" #echo " gpiohb pwm {pin} {0-1023}" echo " gpiohb close {pin}" echo "" } while [ "$1" != "" ]; do case $1 in -h | --help | -?) usage exit ;; mode) echo $1 $2 $3 if [ "$3" != "out" ] ; then $3="in" fi pin=${pins[$2]} echo $pin > /sys/class/gpio/export echo $3 > /sys/class/gpio/gpio$pin/direction exit ;; read) pin=${pins[$2]} cat /sys/class/gpio/gpio$pin/value exit ;; write) pin=${pins[$2]} echo $3 > /sys/class/gpio/gpio$pin/value exit ;; wfi) pin=${pins[$2]} echo $3 > /sys/class/gpio/gpio$pin/edge exit ;; pwm) # Not implemented yet.... pin=${pins[$2]} exit ;; close) pin=${pins[$2]} echo $pin > /sys/class/gpio/unexport exit ;; *) echo "ERROR: unknown parameter \"$PARAM\"" usage exit 1 ;; esac shift done