Shell 流水燈 - Alinx Zynq 7010

#!/bin/bash

LED_NUM=6
aLED_base=(906 919 898 899 900 901)

##export all led
#echo "export all led"
index=0
while((${index} < ${LED_NUM}))
do
	echo ${aLED_base[${index}]} > /sys/class/gpio/export
	let "index++"
done

##set all gpio-led pin direction out
#echo "set all gpio-led pin direction out"
index=0
while((${index} < ${LED_NUM}))
do
	echo out > /sys/class/gpio/gpio${aLED_base[${index}]}/direction
	let "index++"
done

##turn off all led
#echo "turn off all led"
index=0
while((${index} < ${LED_NUM}))
do      
	echo 1 > /sys/class/gpio/gpio${aLED_base[${index}]}/value
        let "index++"
done

##	user function	
function loopFlush()
{
#echo "into loopFlush function"

DELAY_TIME=0.03
LOOP_COUNT=10
_loopTime=0

while((${_loopTime} < ${LOOP_COUNT}))
do
	#echo "FC:loopFlush start"

	##turn on
	index=0
	while((${index} < ${LED_NUM}))
	do
		echo 0 > /sys/class/gpio/gpio${aLED_base[${index}]}/value
	        let "index++"
		sleep ${DELAY_TIME}
	done

	##turn off
	index=0
	while((${index} < ${LED_NUM}))
	do
		echo 1 > /sys/class/gpio/gpio${aLED_base[${index}]}/value
	        let "index++"
		sleep ${DELAY_TIME}
	done
	let "_loopTime++"

	#echo "FC:loopFlush end"
done
}

function crossFlush()
{
_aLedStateLine=(0 0 0 1 1 1 0 0 0 1 1 1 )
_aLedNumLine=(906 919 898 906 919 898 901 900 899 901 900 899)
_loopTime=0

LOOP_COUNT=10

while((${_loopTime} < ${LOOP_COUNT}))
do
	index=0
	while((${index} < ${#_aLedNumLine[*]}))
	do
		echo ${_aLedStateLine[${index}]} > /sys/class/gpio/gpio${_aLedNumLine[${index}]}/value
		let "index++"
		sleep  0.05
	done
	
	sleep 0.05
	
	let "_loopTime++"
done
}


#main
loopFlush
crossFlush


















:<<COMM
##export all led
echo 898 > /sys/class/gpio/export
echo 899 > /sys/class/gpio/export
echo 900 > /sys/class/gpio/export
echo 901 > /sys/class/gpio/export
echo 906 > /sys/class/gpio/export
echo 919 > /sys/class/gpio/export

##set all gpio-led pin direction out
echo out > /sys/class/gpio/gpio906/direction
echo out > /sys/class/gpio/gpio919/direction
echo out > /sys/class/gpio/gpio898/direction
echo out > /sys/class/gpio/gpio899/direction
echo out > /sys/class/gpio/gpio900/direction
echo out > /sys/class/gpio/gpio901/direction

##turn off all led
echo 1 > /sys/class/gpio/gpio906/value
echo 1 > /sys/class/gpio/gpio919/value
echo 1 > /sys/class/gpio/gpio898/value
echo 1 > /sys/class/gpio/gpio899/value
echo 1 > /sys/class/gpio/gpio900/value
echo 1 > /sys/class/gpio/gpio901/value

while((${LOOP_COUNT} > 0))
do
	##turn on
        echo 0 > /sys/class/gpio/gpio906/value
        sleep ${DELAY_TIME}
	echo 0 > /sys/class/gpio/gpio919/value
        sleep ${DELAY_TIME}
	echo 0 > /sys/class/gpio/gpio898/value
	sleep ${DELAY_TIME}
        echo 0 > /sys/class/gpio/gpio899/value
	sleep ${DELAY_TIME}
	echo 0 > /sys/class/gpio/gpio900/value
        sleep ${DELAY_TIME}
        echo 0 > /sys/class/gpio/gpio901/value
        sleep ${DELAY_TIME}

	##turn off
        echo 1 > /sys/class/gpio/gpio906/value
	sleep ${DELAY_TIME}
        echo 1 > /sys/class/gpio/gpio919/value
       	sleep ${DELAY_TIME}
 	echo 1 > /sys/class/gpio/gpio898/value
        sleep ${DELAY_TIME}
        echo 1 > /sys/class/gpio/gpio899/value
        sleep ${DELAY_TIME}
        echo 1 > /sys/class/gpio/gpio900/value
       	sleep ${DELAY_TIME}
       	echo 1 > /sys/class/gpio/gpio901/value
        sleep ${DELAY_TIME}

	let "LOOP_COUNT--"
done
COMM

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章